首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS宽度值以尊重嵌入内容的宽度属性(iframe、object、embedded )

CSS宽度值以尊重嵌入内容的宽度属性(iframe、object、embedded )
EN

Stack Overflow用户
提问于 2011-10-12 14:45:08
回答 1查看 4.2K关注 0票数 0

我使用的是基于网格的布局,简而言之,这个布局如下所示:

代码语言:javascript
复制
<div class="width-2">
    <h1>300px</h1>
    <div class="embed-container">
        <iframe width="400" height="400" ...></iframe>
    </div>
</div>

适当的CSS:

代码语言:javascript
复制
h1 { width: 300px; }
.width-2 { width: 600px; }
.embed-container > iframe { width: 100%; /* Must turn out to be 600px wide */ }

当我想介绍auto宽度时,问题就开始了:

代码语言:javascript
复制
<div class="width-auto">
    <h1>300px</h1>
    <div class="embed-container">
        <iframe width="400" height="400" ...></iframe>
    </div>
</div>

使用css:

代码语言:javascript
复制
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 it宽!

这里是现场直播:http://jsfiddle.net/ETUkD/2/

请注意,这里用iframe表示的是任何嵌入的内容,所以我不想在它上重新定义其他样式属性,也不想以任何其他方式修改它。

UPDATE:一种解决方案是使用:not()选择器,但internet explorer不支持.

代码语言:javascript
复制
div:not(.width-auto) > .embed-container > iframe { 
    width: 100%; 
} 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-12 18:07:39

解决方案1:您可以考虑使用Selectivzr。http://selectivizr.com/ -它将允许您使用IE6-8中的:not(),使用许多javascript库中的一个。

解决方案2:为什么不在您的CSS中更具体?http://jsfiddle.net/pkY8K/

代码语言:javascript
复制
.width-2 .embed-container iframe {
    width: 100%;   
}

声明iframe宽度为100%,只有当它在div的时候,你知道它需要它。然后完全放弃.width-auto .embed-container iframe { width: auto; }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7741926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档