Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Ширина элемента по соседнему без использования ID (https://javascript.ru/forum/jquery/46080-shirina-ehlementa-po-sosednemu-bez-ispolzovaniya-id.html)

BETEPAH 27.03.2014 23:52

Цитата:

Сообщение от Aetae
а последний оставить без ширины и float - он сам растянется как надо.

Это не совсем так. Он не растянется как надо, он растянется на всю ширину. Просто левая его часть будет перекрыта флоатнутыми блоками.
Интересное решение, уже знаю, где его применю, спасибо!

рони 27.03.2014 23:53

:write:
вариант решения на jquery -- если ширина блоков не динамическая -- пересчитывать css добавленного блока при изменении размера окна нет необходимости.
http://learn.javascript.ru/play/2VPmL

Mel 28.03.2014 06:33

В том-то и дело, что не растягивается последний div самостоятельно. Он пустой, там просто в css background-image c repeat-x. Типа отчёркивания.

рони, это структура, похожая на вкладки у Chrome, например. Ширина каждой вкладки зависит от содержимого.

Вот так сделал на $(window).resize

var Size  = 0;
$('.ClassName').each (function () {
   if ($(this).is (':visible')) {
      Size = $(this).parent ().width ();
      $(this).parent ().children ().each (function () {
         if ($(this).attr ('class') != 'ClassName') Size = Size - $(this).width ();
      });
      $(this).width (Size);
   }
});

Aetae 28.03.2014 06:55

Mel, прежде чем дальше мудрить, нельзя ли просто использовать overflow: hidden?
<style type="text/css">
.container{
	position:relative;
	overflow:hidden;
	
	width: 70%;
	border: 1px solid #000;	
}
.container:after{
	content:'';
	
	display:inline-block;
	background:url(http://javascript.ru/forum/images/reputation/reputation_plus.gif) repeat-x;
	
	position:absolute;
	top:0px;
	bottom:0;
	
	width:100%;
}

.container div{
	height:100px;
	float:left;
	
	padding: 5px;
}
</style>

<div class="container">
	<div style="background:rgba(20,20,255,.5);">Контент</div>
	<div style="background:rgba(20,255,20,.5);">разной</div>
	<div style="background:rgba(255,20,20,.5);">длины.</div>
</div>

Mel 28.03.2014 07:29

Цитата:

Сообщение от Aetae (Сообщение 304816)
Mel, прежде чем дальше мудрить, нельзя ли просто использовать overflow: hidden?

Вот я балбес-то!
Твой код не заработал, но натолкнул на мысль: а за каким мне вообще этот дополнительный DIV нужен, если я могу контейнеру сделать background-image?

Короче, сам себе мозг запудрил.
Всем спасибо!


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