响应式设计3 div跨布局,ul堆叠在中心div下方

时间:2016-01-22 21:26:27

标签: javascript jquery html css

我正在尝试为我的页脚设置一个3 div,1列表。左边的链接,我社交媒体图标上方中间的标题都居中,然后是右边的另一个链接,如图所示。

http://imgur.com/iJU5Wxw

我设法用一些写得非常糟糕的代码完成了这个。我甚至不会告诉你css。这很糟糕。

  <div class="contentFoot">
    <ul>
      <li class="joinCommunity">Join our community</li>
      <li class="leftFoot"><a class="contentFootLink" href="sign-up">Sign up for email updates</a></li>
      <li>
        <ul class="soc">
          <li><a class="soc-twitter" href="#"></a></li>
          <li><a class="soc-facebook" href="#"></a></li>
          <li><a class="soc-google" href="#"></a></li>
          <li><a class="soc-pinterest" href="#"></a></li>
          <li><a class="soc-instagram soc-icon-last" href="#"></a></li>
        </ul>
      </li>
      <a class="contentFootLink" href="feedback"><li class="rightFoot">Give us feedback about our website</li></a>
    </ul>
  </div>

我现在正在尝试重写以获得响应式设计。以下是我正在尝试重写的内容我正在尝试使用div-inlineblock,div-inlineblock,div-block,div-inlineblock;所以它会被留下,中间堆叠,正确。然后很容易让响应式设计在它足够小时叠加所有东西。

当前状态:http://imgur.com/JCp49Js

HTML:

      <div class="contentFoot">
        <div class="leftFoot">Sign up for email updates</div>
        <div class="midFoot">Join our community</div>
        <ul class="soc">
          <li><a class="soc-twitter" href="#"></a></li>
          <li><a class="soc-facebook" href="#"></a></li>
          <li><a class="soc-google" href="#"></a></li>
          <li><a class="soc-pinterest" href="#"></a></li>
          <li><a class="soc-instagram soc-icon-last" href="#"></a></li>
        </ul>
        <div class="rightFoot">Give us feedback about our website</div>
      </div>

CSS:

/************* footer ***************/
.contentFoot {
text-align:center;
width: 80%;
margin: 0 auto;
text-align: center;
}

.leftFoot,
.midFoot,
.rightFoot {
    display: inline-block;
  vertical-align:top;
  width: 25%;
}

/***************Social Media****************/
@font-face {
    font-family: 'si';
    src: url('font/socicon.eot');
    src: url('font/socicon.eot?#iefix') format('embedded-opentype'),
         url('font/socicon.woff') format('woff'),
         url('font/socicon.ttf') format('truetype'),
         url('font/socicon.svg#icomoonregular') format('svg');
    font-weight: normal;
    font-style: normal;
        font-family: 'Raleway', sans-serif;
}

@media screen and (-webkit-min-device-pixel-ratio:0) {
    @font-face {
        font-family:si;
        src: url(font/socicon.svg) format(svg);
    }
}

.soc {
    display: block;
    list-style:none;
    width: 20%;
    clear: both;
}
.soc li {
    display:inline-block;
    *display:inline;
    zoom:1;
}
.soc li a {
    font-family:si!important;
    font-style:normal;
    font-weight:400;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
        transition:.1s;
    text-decoration:none;
    text-align:center;
    display:block;
    position: relative;
    width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 22px;
    color: #ffffff;
}
.soc a:hover {
    z-index: 2;
    -webkit-transform: translateY(-5px);
    transform: translateY(-5px);
}
.soc-icon-last{
    margin:0 !important;
}
.soc-twitter {
    background-color: #4da7de;
}
.soc-twitter:before {
    content:'a';
}
.soc-facebook {
    background-color: #3e5b98;
}
.soc-facebook:before {
    content:'b';
}
.soc-google {
    background-color: #d93e2d;
}
.soc-google:before {
    content:'c';
}
.soc-pinterest {
    background-color: #c92619;
}
.soc-pinterest:before {
    content:'d';
}
.soc-instagram {
    background-color: #9c7c6e;
}
.soc-instagram:before {
    content:'x';
}

编辑:设置.soc以包含保证金:0 auto;把它放在适当的位置,但其他一切仍然不对齐。

1 个答案:

答案 0 :(得分:1)

实现所需设计的最佳方法是将社交图标移动到中间部分,并将部分设置为宽度的33.333%

<强> HTML

<div class="midFoot">Join our community
          <ul class="soc">
            <li><a class="soc-twitter" href="#"></a></li>
            <li><a class="soc-facebook" href="#"></a></li>
            <li><a class="soc-google" href="#"></a></li>
            <li><a class="soc-pinterest" href="#"></a></li>
            <li><a class="soc-instagram soc-icon-last" href="#"></a></li>
          </ul>
        </div>

<强> CSS

.leftFoot,
.midFoot,
.rightFoot {
  display: inline-block;
  vertical-align:top;
  font-size: 1rem;
  width: 33.3333%;
}

然后删除列表的一些浏览器默认样式:

.soc {
  padding: 0;
  margin: 0;
}

我还将font-size: 0;添加到.contentFoot,然后在页脚部分专门设置font-size。这是删除inline-block元素之间添加的空格的常用技巧。 另一个选择是浮动元素。

DEMO