Jump to content
  • 0

Про вложенные DIV и width


Northwood
 Share

Question

Прошу помочь, вроде искал но что-то безупешно. Проблема такая:

есть 4 блока, один родитель, три остальных ? дети.

CSS:

.navnotselected {
width: auto;
height: 51px;
float:left;
}

.navtext {
text-align: center;
width: auto;
margin-top: 5px;
margin-left: 17px;
margin-right: 17px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
color: #333333;
text-decoration:none;
}

}
.navnotselectedbar1 {
width: 100%;
margin-top:1px;
height:2px;
background: #dcf1ff;

}

.navnotselectedbar2 {
width: 100%;
height:4px;
background: #dcf1ff;
width:100%;

}

и HTML

<div class="navnotselected">

<div class="navtext">Text</div>
<div class="navnotselectedbar1" ></div>
<div class="navnotselectedbar2" ></div>

</div>

Так вот. Нижние два блока navnotselectedbar1 и 2 в firefox и Opera нормально растягиваются по ширине родительского div (navnotselected). В IE ? Никак. Только при добавлении в них чего-то они растягиваются, а так видимо 0.

И самое главное, что если

.navnotselected {
width: auto;

auto сменить на абсолютное, например 100px, то сразу все работает..

но мне нужно, чтобы весь внешний слой динамически менял ширину в зависимости от контента..

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

да, действительно, поставил два IE, в седьмом было еще терпимо, просто не тянулись два этих слоя внутренних, но родитель был по ширине текста. А вот в IE6 родительский слой вместе с содержимом полностю расползся до конца браузера вместе с детьми :/

Link to comment
Share on other sites

  • 0

Если поиграться с экспрешном, то можно достичь желаемого, но с моей точки зрения экспрешн - не панацея и имеет много недостатков, поэтому лучше им не злоупотреблять. В данном случае введен еще один элемент span, т.к. margin-left: 17px b margin-right: 17px у navtext при эскпрешне ширины "вешает" ИЕ :).

Все одним кодом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title></title>
<style type="text/css">
<!--
.navnotselected {
float:left;
width: auto;
height: 51px;
}
.navtext {
font:14px Verdana, Arial, Helvetica, sans-serif;
color: #333333;
margin-top: 5px;
text-align: center;
width: expression(parseInt(this.parentNode.offsetWidth) + 'px');
}
.navtext span{
display: block;
margin: 0 17px;
}
.navnotselectedbar1 {
background: #dcf1ff;
font-size:1px;
height:expression(this.scrollHeight < 2? "2px" : "auto" );
min-height: 2px;
margin-top:1px;
overflow: hidden;
width: expression(parseInt(this.parentNode.offsetWidth) + 'px');
}

.navnotselectedbar2 {
background: #ff0000; /* изменен цвет для наглядности */
font-size:1px;
height:expression(this.scrollHeight < 4? "4px" : "auto" );
min-height: 4px;
overflow: hidden;
width: expression(parseInt(this.parentNode.offsetWidth) + 'px');
}
-->
</style>
</head>
<body>
<div class="navnotselected">
<div class="navtext">
<span>Text</span>
</div>
<div class="navnotselectedbar1"></div>
<div class="navnotselectedbar2"></div>
</div>

</body>
</html>

Есть более простые способы создания такого вида...

Link to comment
Share on other sites

  • 0

спасибо, это был один из потенциальных вариантов, но хотелось решить проблему нативно, если можно так выразиться.

Есть более простые способы создания такого вида...

именно так я и поступил. Див, в котором написан текст, я окутал в еще два дива, которым присвоил нижние границы 2px одному и 4px другому. Все нормально во всех браузерах.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy