Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как посчитать количество строк (https://javascript.ru/forum/misc/14259-kak-poschitat-kolichestvo-strok.html)

x-yuri 08.01.2011 20:41

Цитата:

Сообщение от niZE
потому что его много)ну то-есть название пункта великовато))

покажи дизайн

niZE 08.01.2011 20:48

monolithed,
так мне не надо что-бы он скрывался,мне нужно что-бы он был виден целиком,я конечно извиняюсь если вы не понимаете то что я пытаюсь сказать.Мне надо что-бы текст уменьшался.Т.е. что-бы я не вручную каждый раз смотрел где там текст вылезает и применял стиль,а что-бы это было автоматизировано,для этого мне надо-бы посчитать строки.

x-yuri,
показать,смысле код css?

monolithed 08.01.2011 20:56

niZE то о чем вы просте сделать кроссбраузерно, наверно не невозможно, если конечно не создавать пустую форму для подсчета количества строк (но это бредятина, так не делается).

Цитата:

Сообщение от niZE
показать,смысле код css?

все что есть

Aetae 08.01.2011 22:05

Эта тем полна бреда чуть более чем наполовину.

Товарищу нyжно что-то типа этого:
Обработанный:
<div style="font-size:40px;width:300px;height:45px;overflow:hidden;border:1px solid #000">
Такой вот тут у нас длинный-предлинный текст попался, чтож теперь поделаешь. Сокращать надо бы, но хочется, понимашь, хитрого дизайнерского хода.
</div>
Не обработанный:
<div style="font-size:40px;width:300px;height:45px;overflow:hidden;border:1px solid #000">
Такой вот тут у нас длинный-предлинный текст попался, чтож теперь поделаешь. Сокращать надо бы, но хочется, понимашь, хитрого дизайнерского хода.
</div>
<script type="text/javascript">
var div=document.getElementsByTagName('div')[0],f;
var height=parseInt(div.style.height); //высота блока, если она едина, то лучше задать просто вручную цифрой
while(div.scrollHeight>height&&(f=parseInt(div.style.fontSize)-1)>0)div.style.fontSize=f+'px'; //пока реальныя высота больше назначенной (и font-size>0 - мало ли=) ) уменьшаем размер шрифта на 1px;
</script>


Правильно же это делается тупо обрезкой с добавлением "...".

x-yuri 08.01.2011 22:26

Цитата:

Сообщение от monolithed
то о чем вы просте сделать кроссбраузерно, наверно не невозможно

а главное, не нужно

Цитата:

Сообщение от niZE
x-yuri,
показать,смысле код css?

картинку или как это выглядит сейчас

monolithed 08.01.2011 22:26

Цитата:

Сообщение от Aetae
Товарищу нyжно что-то типа этого:

это ему уж точно не нужно, так текст нестабильный какой-то выходит: :D

Обработанный:
<div style="font-size:40px;width:300px;height:45px;overflow:hidden;border:1px solid #000">
Такой вот тут у нас длинный-предлинный текст попался, чтож теперь поделаешь. Сокращать надо бы, но хочется, понимашь, хитрого дизайнерского хода.
</div>

О тут не нужно и обрабатывать:
<div style="font-size:40px;width:300px;height:45px;overflow:hidden;border:1px solid #000">
Такой вот тут у нас длинный-предлинный т
</div>

Ну а тут так еще больше текста:
<div style="font-size:40px;width:300px;height:45px;overflow:hidden;border:1px solid #000">
Такой вот тут у нас длинный-предлинный текст попался, чтож теперь поделаешь. Сокращать надо бы, но хочется, понимашь, хитрого дизайнерского хода.............................................................................
</div>

<script type="text/javascript">
var div = document.getElementsByTagName('div'), i = div.length, f;
while(i--){ 
    while(div[i].scrollHeight>parseInt(div[i].style.height)&&(f=parseInt(div[i].style.fontSize)-1)>0){
        div[i].style.fontSize = f+'px';
    }
}
</script>



Цитата:

Сообщение от Aetae
Правильно же это делается тупо обрезкой с добавлением "...".

ну да

Aetae 08.01.2011 22:36

Цитата:

Сообщение от monolithed (Сообщение 86952)
это ему уж точно не нужно, так текст нестабильный какой-то выходит: :D

Эээ:
Цитата:

Сообщение от niZE (Сообщение 86917)
monolithed,
так мне не надо что-бы он скрывался,мне нужно что-бы он был виден целиком,я конечно извиняюсь если вы не понимаете то что я пытаюсь сказать.Мне надо что-бы текст уменьшался.Т.е. что-бы я не вручную каждый раз смотрел где там текст вылезает и применял стиль,а что-бы это было автоматизировано,для этого мне надо-бы посчитать строки.


x-yuri 08.01.2011 23:13

если бы топикстартеры знали, что им нужно, они бы не ходили на форум ;)

niZE 09.01.2011 01:15

спасибо большое за ответы.товарищ Aetae, абсолютно верно меня понял.Однако у меня возникли некоторые трудности:

<style>
#menu_bg ul li a{
	background-image:url(images/menu_punkt.png);
	background-position:top;
	background-repeat:no-repeat;
	height: 45px;
	color: #65b2b6;
	display: block;
	text-decoration:none;
	width: 184px;
	text-align:center;
	line-height:45px;
	cursor:pointer;
	
}
#menu_bg ul li a:hover{
	background-image:url(images/menu_punkt.png);
	background-position:bottom;
	width: 184px;
	height:45px;
}

#menu_bg ul li ul{
	list-style:none;
	width: 100%;
	display: none;
	margin: 0 auto;
	padding: 0;
}

#menu_bg ul li ul li a{
	background-image:none;
	height: 34px;
	color: #65b2b6;
	display: block;
	margin: 0 auto;
	border-left: 1px solid #cfcfa9;
	border-right: 1px solid #cfcfa9;
	background-color: #f2f4d3;
	text-decoration:none;
	font-size:14px;
	overflow:hidden;
	width: 160px;
	text-align:center;
	line-height:34px;
}
#menu_bg ul li ul li a:hover{
	background-image:url(images/menu_onhover.png);
	width: 164px;
	height: 34px;
	font-size: 16px;
}
</style>

<script type='text/javascript'>
divAccor = document.getElementById('menu_bg');
getLi = divAccor.getElementsByClassName('underLi');
for(i=0;i<getLi.length;i++){
var menuA=getLi.item(i).getElementsByTagName('a'),f;
var height=parseInt(34); //высота блока, если она едина, то лучше задать просто вручную цифрой
while(menuA.scrollHeight>height&&(f=parseInt(menuA.style.fontSize)-1)>0)menuA.style.fontSize=f+'px'; //пока реальныя высота больше назначенной (и font-size>0 - мало ли=) ) уменьшаем размер шрифта на 1px;
}
function menuAccordion() {
			var lis = new Array();
			var ulInLi = new Array();
			divAccor = document.getElementById('menu_bg');
			getLi = divAccor.getElementsByTagName('li');
			n = 0;
			k = 0;
				for(i=0;i<getLi.length;i++){
					ulObj=getLi.item(i).getElementsByTagName('ul');
						if(ulObj.length > 0){
						lis[n]=getLi.item(i);
						n++;
						}
				}
				for(i=0;i<lis.length;i++){
					lis[i].onclick = function() {
						for(j=0;j<lis.length;j++){
							if(lis[j].getElementsByTagName('ul').item(0).style.display != this){
								lis[j].getElementsByTagName('ul').item(0).style.display = 'none';				
							}
						}
						ulObj = this.getElementsByTagName('ul').item(0);
							if(ulObj.style.display == 'block'){
								ulObj.style.display = 'none';
							} else {
								ulObj.style.display = 'block';
							}
						mainResize();
						}
					}
		}
</script>

<div id='menu_bg'>
                            <li><a href='index.html'>Главная</a></li>
                            <li><a href='about.html'>О Нас</a></li>
                            <li><a href='javascript: return false'>Услуги</a>
                                <ul>
                                    <li class="underLi"><a href='credit.html'>Кредиты</a></li>
                                    <li class="underLi"><a href='deposit.html'>Депозиты</a></li>
                                    <li class="underLi"><a href='card.html'>Карточки</a></li>
                                </ul>
                            </li>
                            <li><a href='javascript: return false'>Интернет-Банк</a>
                                                            <ul>
                                    <li class="underLi"><a href='calcul.html'>Депозитный Калькулятор</a></li>
                                    <li class="underLi"><a href='klient_bank.html'>Клиент-Банк</a></li>
                                </ul>
                            </li>
                            <li><a href='filia.html'>Филиалы</a></li>
                            <li><a href='partners.html'>Наши Партнёры</a></li>
                        </ul>
                    </div>


Вообщем у меня при преминении кода который мне дал Aetae смещаються стили.Li первого уровня вообще без стиля,а вот Li второго уровня почему-то получают стиль первого уровня.

Ваня 20.12.2011 13:25

element.style.height = 'auto'


Часовой пояс GMT +3, время: 12:07.