移动端平分布局延伸

原文链接:http://caibaojian.com/mobile-just-center.html

flex方法

1、插入四个空标签,设置flex:1,这个答案是最多的(该方法适合用到多个布局,但代码有点臃肿,看个人喜好,有需要可以用)

<ul class="share-list">
    <li class="gap"></li>
    <li class="share-item"><span>文字居中</span></li>
    <li class="gap"></li>
    <li class="share-item"><span>前端开发博客</span></li>
    <li class="gap"></li>
    <li class="share-item"><span>http://caibaojian.com</span></li>
    <li class="gap"></li>
    <li class="share-item"><span>码农头条</span></li>
    <li class="gap"></li>
</ul>
.share-list{
    display: flex;
}
.share-item{
    width: 60px;
    height: 60px;
}
.gap{
    flex: 1;
    width: 1%;
}
.share-item{width:60px;height:60px; background:orange; }

演示:

如何实现文字居中

根据之前写过的一篇《移动端垂直居中对齐》:http://caibaojian.com/mobile-translate.html 就可以帮我们实现以上的移动端水平居中对齐。(欢迎留言分享更多方法)

第一种:transform+相对定位(推荐使用,兼容性较好,但需要加一个宽度)

.share-item{width:60px;height:60px; background:orange; position:relative;}
.share-item span{position:absolute; left:50%; top:100%; min-width:80px; transform:translate(-50%,0); text-align:center;}

第二种:flex方法

.share-item span{ display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-align: center;
-moz-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
-webkit-box-pack: center;
-moz-box-pack: center;
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center; white-space:nowrap; margin-top:100%;}

以下代码中不再写文字居中的代码了,有问题还请参照上面这两个。回到正文主题。

2、第一个和第三个设置flex为1,第二个为icon的固定宽度;内嵌一层处理具体的icon宽度

<ul class="share-list">
    <li class="share-item"><div class="item-inner"></div></li>
    <li class="share-item"><div class="item-inner"></div></li>
    <li class="share-item"><div class="item-inner"></div></li>
</ul>
.share-list{
    display: flex;
}
.share-item:nth-child(1),
.share-item:nth-child(3){
    flex: 1;
    width: 1%;
}
.share-item:nth-child(2){
    width: 60px;
}
.item-inner{
    width: 60px;
    marigin-left: auto;
    margin-right: auto;
}

看了一下代码,发现不适合拓展到多个平分,不建议使用(PS:如果你发现可以改善,请告知我)

3、对justify-content: space-between;进行变通

每个间隙的宽度 = (100% - 60px * 3)/ 4 = 25% - 45px

先外套一层wrap,设置左右的padding各位25%,再对list设置负的左右margin各位45px(相当于左右的padding减少了45px),得到第一个和最后一个间隙;中间的间隙通过justify-content: space-between;自由分配

通过上面的计算公式,我们同样拓展到四个。每个间隙宽度=(100%-60px*4)/5 = 20% - 48px

<div class="share-list-wrap">
  <ul class="share-list">
    <li class="share-item"><span>微博分享</span></li>
    <li class="share-item"><span>微信分享</span></li>
    <li class="share-item"><span>http://caibaojian.com/</span></li>
    <li class="share-item"><span>微信好友</span></li>
  </ul>
</div>
//code from http://caibaojian.com/mobile-just-center.html
.share-list-wrap{
    padding-left: 20%;
    padding-right: 20%;
}
.share-list{
    display: flex;
    margin-left: -48px;
    margin-right: -48px;
    justify-content: space-between;
}

演示:

时间: 2024-10-28 06:44:19

移动端平分布局延伸的相关文章

权重平等分布局And TableRow布局误区

开头语: 本人最近在自学Android,虽然本人有2年Java Web的开发经验.但是发现Android的自学之路并不是那么平坦,我没有Android真机.但是有一个window phone的手机.开始想做一个通讯录.但是没有参考软件.这样一来我参考wp平台的通讯录去开发本软件,这其中遇到了一些关于sqlite.键盘布局等问题.本文说一说布局的权重问题吧 个人理解: 权重是一个在指定组件内等分该组件空间的一种手段.在android中的设置方式为android:layout_weight="X&q

Flex布局(伸缩盒布局)

Flexible Box是什么?Flexible意为可伸缩的,Box意为盒子,可以理解为一种新式的盒模型——伸缩盒模型.由CSS3规范提出,这是在原有的大家非常熟悉的block, inline-block, inline的基础上延伸出的新一代布局模式. 浏览器兼容性 作为非常现实的开发者,是否对一个新技术进行关注,首先要考虑它的浏览器兼容性如何.我们的伸缩盒模型的浏览器兼容性看起来还是相当不错的. 可以看到,现代浏览器基本上都支持了,IE10开始也支持了(IE和Safari分别加-ms-和-we

使用 CSS3 Flexible Boxes 布局

转自https://segmentfault.com/a/1190000000484017 Flexible Box是什么?Flexible意为可伸缩的,Box意为盒子,可以理解为一种新式的盒模型——伸缩盒模型.由CSS3规范提出,这是在原有的大家非常熟悉的block, inline-block, inline的基础上延伸出的新一代布局模式. 浏览器兼容性 作为非常现实的开发者,是否对一个新技术进行关注,首先要考虑它的浏览器兼容性如何.我们的伸缩盒模型的浏览器兼容性看起来还是相当不错的. 可以看

rem是如何实现自适应布局的?

http://caibaojian.com/web-app-rem.html 使用rem 然后根据媒体查询实现自适应.跟使用JS来自适应适配也是同个道理,不过是js更精确一点.使用媒体查询: html { font-size: 62.5% } @media only screen and (min-width: 481px) { html { font-size:94%!important } } @media only screen and (min-width: 561px) { html

圣杯布局的几种情况

经典三列布局,也叫做圣杯布局[Holy Grail of Layouts]是Kevin Cornell在2006年提出的一个布局模型概念,在国内最早是由淘宝UED的工程师传播开来,在中国也有叫法是双飞翼布局,它的布局要求有几点: 1.三列布局,中间宽度自适应,两边定宽: 2.中间栏要在浏览器中优先展示渲染: 3.允许任意列的高度最高: 4.要求只用一个额外的DIV标签: 5.要求用最简单的CSS.最少的HACK语句: 以上来自博客:https://my.oschina.net/jsan/blog

Android 实现变色状态栏

首先我们得了解什么是透明状态栏以及什么是沉浸式状态栏,以及其区别,国内习惯称透明状态栏为沉浸式状态栏,但是两者是有本质区别的. 先来看看什么是沉浸式模式. Android 4.4中,沉浸式体验得到了再次强化,提供了一种"全屏模式"(Full-screen Immersive Mode).全屏模式又分两种,一种叫后撤式 (Lean Back),另一种叫做沉浸式(Immersive).后撤式已经在之前的系统中被广泛使用了--当你在优酷APP中观看视频时,大部分时间手指是不会去碰屏幕的.这种

如何设计手机网站

由于智能手机的大量使用,使得浏览者通过手机几乎要办一切事情了,当然包括浏览手机网站.这导致企业甚至是个人掀起了一股手机网站建设的热潮,企业通过手机网站与微信公众号关联,实现企业的宣传和在线业务,个人则建手机网站玩一玩.炫一炫,显示一下自己的弄潮能力!那么,作为手机网站建设的第一个环节-手机网站设计,怎么做才能让用户愿意浏览,并且提高用户体验呢?这个问题非常重要,在网站.APP如海的互联网上,要想让您的手机网站能够独树一帜.给用户留下深刻印象,就必须在设计手机网站上下功夫,否则是很难实现的. 1.

rem是如何实现自适应中的?

使用rem 然后根据媒体查询实现自适应.跟使用JS来自适应也是同个道理,不过是js更精确一点.使用媒体查询: html { font-size: 62.5% } @media only screen and (min-width: 481px) { html { font-size:94%!important } } @media only screen and (min-width: 561px) { html { font-size:109%!important } } @media onl

PCB设计规则考量之初识

PCB的设计规则可以分布局与走线.布局里最简单的原则就是避免信号之间的干扰,有把模拟部分与数字部分分开,把开关电源与数字部分分开,把端去耦电容靠近端点,而且从端点出来的电容容值按从小到大摆放效果会好些,再其次,在去耦电容外面就是该端接电阻了,它也要尽量靠近端点.走线里首先是要把电源线设置的粗一些,其次是时钟信号线,而其中的晶振到IC的部分还要加粗. 其他的就说一些零散的概念: 如果是自己设计原理图,让后交给第三方画PCB图,那么,那边都会让你提供一些设计要求,这里的设计要求包括:电源线及电流,时