中心twitter嵌入iframe

时间:2014-05-27 17:56:28

标签: javascript html css iframe twitter

我正在使用Twitter oembed api,现在我的页面上有以下代码:

<div class='row'>

   <iframe id="twitter-widget-0" scrolling="no" frameborder="0" allowtransparency="true" class="twitter-tweet twitter-tweet-rendered" style="display: block; max-width: 99%; min-width: 220px; padding: 0px; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; margin: 10px 0px; border-color: rgb(238, 238, 238) rgb(221, 221, 221) rgb(187, 187, 187); border-width: 1px; border-style: solid; box-shadow: rgba(0, 0, 0, 0.14902) 0px 1px 3px; position: static; visibility: visible; width: 500px;" title="Embedded Tweet" height="186"></iframe>
   <script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

</div>

http://jsfiddle.net/EzeG2/

基本上我尝试做的只是将.row中的iframe水平居中,但只使用CSS,因为我无法控制任何内嵌iframe的样式。 margin:0 auto;似乎无法运作。

2 个答案:

答案 0 :(得分:4)

我将假设您不能为我的答案更改此iFrame的内联样式。

问题是您的内联样式会覆盖您的margin: 0 auto;类。解决此问题的方法是将!important投放到您的margin: 0 auto;类,如此...

.row iframe{
    margin:0 auto !important;
    display:block;
}

jsfiddle

如果您可以修改iFrame的内嵌样式,那么您可以移除margin:10px 0px;或编辑您想要的margin: 10px auto;

结果

答案 1 :(得分:1)

就我能解决而言,代码无法正常工作的唯一原因是因为你有

frameborder="0"
在iframe上计算出保证金:0自动,你错过了一个&#34;之后

style="display: block 

在内联样式中。

如果您无法更改内联样式,请在0之后添加!important,如下所示:

margin:0 auto !important;