CSS两端对齐
前面的话
两端对齐在导航Nav的制作中非常常用。本文将详细介绍CSS两端对齐的3种实现方式
flex
弹性盒模型flex作为强大的弹性布局方式,可以hold住大部分的布局效果,当然也包括两端对齐。可以使用主轴对齐justify-content
的两端对齐属性space-between
justify-content: space-between;
如果要考虑flex三个版本的兼容,则使用如下代码
[注意]IE9-浏览器不支持
.justify-content_flex-justify{ -webkit-box-pack: justify; -ms-flex-pack: justify; -webkit-justify-content: space-between; justify-content: space-between; } <style> body{margin: 0;} ul{margin: 0;padding: 0;list-style: none;} .list{width: 200px;overflow: hidden;border: 1px solid gray;background-color: lightgreen;line-height: 30px;} .in{background-color: lightblue;padding: 0 10px;} .display_flex{display: -webkit-box;display: -ms-flexbox;display: -webkit-flex;display: flex;} .display_flex > *{display: block;} .justify-content_flex-justify{-webkit-box-pack: justify;-ms-flex-pack: justify;-webkit-justify-content: space-between;justify-content: space-between;} </style> <ul class="list display_flex justify-content_flex-justify"> <li class="in">内容</li> <li class="in">样式</li> <li class="in">行为</li> </ul>
text-align
水平对齐text-align
本身就有一个属性值是两端对齐justify
。但是,要注意的是,使用它实现两端对齐,需要注意在元素之间添加空白符(包括空格、换行符、制表符)才起作用。由于HTML结构中,<li>
元素之间存在换行,所以不需要额外添加空白符
但仅仅是这样,元素也无法实现两端对齐效果
元素必须占满一行才行,如下所示。占满一行的元素可以实现两端对齐,没有占满的则无法实现
【text-align-last】
显然,上面的情况都不符合要求,这时就需要使用属性text-align-last
,该属性用来规定如何对齐文本的最后一行
于是把text-align
属性替换成text-align-last
。但是,要兼容IE浏览器需要同时设置text-align:justify
[注意]safari浏览器、IOS、androis4.4-浏览器不支持
<style> body{margin: 0;} ul{margin: 0;padding: 0;list-style: none;} .list{width: 200px;overflow: hidden;border: 1px solid gray;background-color: lightgreen;line-height: 30px;text-align: justify;text-align-last: justify;} .in{background-color: lightblue;padding: 0 10px;display:inline-block;} </style> <ul class="list "> <li class="in">内容</li> <li class="in">样式</li> <li class="in">行为</li> </ul>
【after伪元素】
使用text-align-last
可以实现两端对齐的效果,但是兼容性并不好。通过给父元素设置伪元素:after
,并为伪元素设置inline-block
,并设置宽度100%,相当于伪元素:after
被挤到第二行。从而使原来的元素占满了第一行,触发了两端对齐的效果
这里要注意的是,因为空白会被解析为换行,所以可以通过设置父元素的高度height
,并溢出隐藏,来解决多余的换行问题
<style> body{margin: 0;} ul{margin: 0;padding: 0;list-style: none;} .list{width: 200px;height: 30px;overflow: hidden;border: 1px solid gray;background-color: lightgreen;line-height: 30px;text-align: justify;} .in{background-color: lightblue;padding: 0 10px;display:inline-block;} .list:after{content:"";width:100%;display:inline-block;} </style> <ul class="list "> <li class="in">内容</li> <li class="in">样式</li> <li class="in">行为</li> </ul>
column
使用多列布局column
也可以实现类似的效果。column-count
定义了元素的列数,例子中有3个子元素,所以定义为3列。特别要注意的是,这时需要把子元素设置为block元素才会生效
[注意]IE9-浏览器不支持
<style> body{margin: 0;} ul{margin: 0;padding: 0;list-style: none;} .list{width: 200px;overflow: hidden;border: 1px solid gray;background-color: lightgreen;line-height: 30px;text-align: center;} .col3{-webkit-column-count:3;-moz-column-count:3;column-count:3;} .in{background-color: lightblue;padding: 0 10px;display:block;} </style> <ul class="list col3"> <li class="in">内容</li> <li class="in">样式</li> <li class="in">行为</li> </ul>
如果子元素之间需要使用竖线,且竖线高度与子元素高度相同时,使用column-rule
可方便的实现需求
<style> body{margin: 0;} ul{margin: 0;padding: 0;list-style: none;} .list{width: 200px;overflow: hidden;border: 1px solid gray;background-color: lightgreen;line-height: 30px;text-align: center;} .col3{-webkit-column-count:3;-moz-column-count:3;column-count:3;} .col-rule{-webkit-column-rule: 1px solid black;-moz-column-rule: 1px solid black;column-rule: 1px solid black;} .in{background-color: lightblue;padding: 0 10px;display:block;} </style> <ul class="list col3 col-rule"> <li class="in">内容</li> <li class="in">样式</li> <li class="in">行为</li> </ul>
更多CSS两端对齐 相关文章请关注PHP中文网!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

CSS盒子阴影和轮廓属性获得了主题。让我们查看一些在真实主题中起作用的示例,以及我们必须将这些样式应用于WordPress块和元素的选项。

这是我们在形式可访问性上进行的小型系列中的第三篇文章。如果您错过了第二篇文章,请查看“以:focus-visible的管理用户焦点”。在

本教程演示了使用智能表单框架创建外观专业的JavaScript表单(注意:不再可用)。 尽管框架本身不可用,但原理和技术仍然与其他形式的建筑商相关。

构建内联文本编辑器并不是微不足道的。 该过程首先要使目标元素可编辑,并在此过程中处理潜在的语法异常。 创建您的编辑器 要构建此编辑器,您需要动态修改内容

Svelte Transition API提供了一种使组件输入或离开文档(包括自定义Svelte Transitions)时动画组件的方法。

该教程通过使用node.js,express和multer构建文件上传系统来指导您。 我们将介绍单个和多个文件上传,甚至演示在MongoDB数据库中存储图像以进行以后的检索。 首先,设置您的projec

本文探讨了Envato Market上可用的PHP表单构建器脚本,比较了其功能,灵活性和设计。 在研究特定选项之前,让我们了解PHP形式构建器是什么以及为什么要使用一个。 PHP形式
