【问题标题】:Why won't these social buttons centre in responsive design?为什么这些社交按钮不在响应式设计中居中?
【发布时间】:2013-02-13 09:51:07
【问题描述】:

我们已经在我们的网站上手动编写了 Twitter、Facebook 和 G+ 按钮,这些按钮在 ajax 产品组合中使用响应式设计。它们都彼此完美对齐,但问题是我们希望所有 3 个都居中,无论周围容器的大小如何。

在我的脑海中,这应该很容易与具有 100% 宽度以扩展到投资组合大小的周围 Div 一起工作,在另一个 Div 中,它具有左边距和右边距作为自动浮动到 100% 宽度 div 的中心然后在那个 div 里面是按钮的容器。但是由于某种原因,它们总是很难对齐到左边。这是我目前的代码。

这是一个例子

http://themixtapesite.com/#/joe-budden-a-lose-quarter 

现在更改您的浏览器窗口以使其更小,以便您可以动态查看所有不同的大小 - 我希望这些社交按钮浮动在中间居中,而不是像现在这样浮动在左侧。..

<!-- Social sharing buttons -->
    <div class="social-single">

    <div class="social-centre">     

    <div class="twit-button"><a href="https://twitter.com/share" class="twitter-share-button" data-via="mixtapes_4_free" data-lang="msa" data-related="realdannys" data-hashtags="mixtape">Tweet</a></div>

    <div class="fb-button"><iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo urlencode(get_permalink($post->ID)); ?>&amp;title=<?php wp_title( '|', true, 'right' ); ?>&amp;send=false&amp;layout=button_count&amp;width=71&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21&amp;appId=118471234925480" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width: 71px; height: 21px;" allowTransparency="true"></iframe>
                        </div>

    <div class="gplus-button"><g:plusone href="<?php echo urlencode(get_permalink($post->ID)); ?>" size="medium" annotation="bubble" width="50px"></g:plusone></div>

    </div> </div>

还有 CSS

/* Social Buttons */

.social-single {
display: block;
margin-left: auto;
margin-right: auto;
margin-top: 10px;
margin-bottom: 10px;
width:  100% !important;
}

.social-centre
{
margin-left: auto;
margin-right: auto;
}

.twit-button {
float:  left;
margin: 0;
margin-right: 5px;
width: 80px;
}

.fb-button {
float: left;
margin: 0;
width: 80px;
}

.gplus-button {
float: left;
margin: 0;
width: 50px;
}

【问题讨论】:

    标签: responsive-design social centering


    【解决方案1】:

    你已经用过margin-left: auto;margin-right:auto; 很好。 你把所有的东西都设置在响应的方式上。 但是浏览器检查每个元素的一件事,它的 width 以及 height 。 我们应该分别定义这些值,否则它将假定它没有任何子元素。

    我检查了你的代码,因为我认为你只需要添加一件事 - 给 .social-centre 类宽度你想要的任何东西,但如果它在 %'s 中会很好,因为它的响应能力。

    .social-centre
    {
    margin-left: auto;
    margin-right: auto;
    width:50%; //example, whatever you want.
    } 
    

    它会正常工作。希望对你有帮助。

    【讨论】:

    • 嗯,我尝试了 90% 的宽度,但不幸的是没有,您可以在此处查看示例,http://themixtapesite.com/#/joe-budden-a-lose-quarter 现在更改您的浏览器窗口以使其更小,以便您可以动态查看所有不同的尺寸 -我希望这些社交按钮在中间浮动,而不是像现在这样浮动在左侧......
    • 嘿,丹尼只是重新检查你的代码。您已经多次使用 body 标签,浏览器假设所有内容都以第一个 body 标签结束。只需删除第一个结束正文标签。它的内部 .social-center 类。如果可能,请尝试使您的代码比现在更具语义性。您在页面之间使用了脚本/样式,这在 W3C 指南中是不合适的。
    • Akshaya,不知道您多次使用 body 标签是什么意思?它在我的来源中只有一次,所有内容都在中间。你在看源头吗?在这种情况下,您需要查看 ajax 页面的来源,因为主页的来源只会为您提供导航网格......其他我的 php 中没有用于投资组合的正文标签(带有社交按钮) 它都是带有 ajax 的 Wordpress。并且 div 标签都在正确的位置终止……?
    • 哦!所以它可能是 wordpress 问题(正文标签)。无论如何,我已经在我的 IDE 中尝试了该代码并且它工作正常。否则只需检查您的代码两次,如果您不太确定 Wordpress 主题自定义,您可以通过 Javascript 或 Jquery 放置这些 CSS 属性。您可以检查 Display:inline-block;或显示:内联表; .也可以使用百分比的边距属性。
    • 我遇到的问题是它必须是不同的宽度百分比,具体取决于响应式布局。对于台式机 90%,然后它转到 iPad/横向尺寸,50% 在这里完美运行(单独设置它们没有问题,因为我可以在响应式 CSS 中这样做)问题是当我达到智能手机尺寸时,对于他们中的大多数50% 是完美的,但是当你得到较小的尺寸时,50% 的宽度太窄了,它会将一个图标撞到下一行。我尝试设置最小 px 宽度,但随后 div 再次偏离中心...
    猜你喜欢
    • 2019-01-04
    • 1970-01-01
    • 2011-07-04
    • 2014-01-12
    • 2013-12-12
    • 2014-02-26
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多