Я использую сеточный макет, который, короче говоря, выглядит следующим образом:
<div class="width-2">
<h1>300px</h1>
<div class="embed-container">
<iframe width="400" height="400" ...></iframe>
</div>
</div>
Соответствующий CSS:
h1 { width: 300px; }
.width-2 { width: 600px; }
.embed-container > iframe { width: 100%; /* Must turn out to be 600px wide */ }
Проблема начинается, когда я хочупредставьте auto
width:
<div class="width-auto">
<h1>300px</h1>
<div class="embed-container">
<iframe width="400" height="400" ...></iframe>
</div>
</div>
с помощью css:
h1 { width: 300px; }
.width-2 { width: 600px; }
.embed-container > iframe {
width: 100%;
}
.width-auto .embed-container > iframe {
width: auto; /* Must revert to 400px, but doesn't? */
}
Я ожидаю, что iframe вернется назад, чтобы взять свою ширину из своего собственного атрибута width
и будет 400шириной в пиксели, но вместо этого он имеет ширину 300 пикселей !!!
Вот он в прямом эфире: http://jsfiddle.net/ETUkD/2/
Обратите внимание, что то, что здесь представлено в iframe, это любой встроенный контент, поэтому я неВы хотите переопределить дополнительный атрибут стиля или изменить его любым другим способом.
ОБНОВЛЕНИЕ : Одним из решений является использование селектора :not()
, но это не поддерживается Internet Explorer...
div:not(.width-auto) > .embed-container > iframe {
width: 100%;
}