CSS实现 全兼容的多列均匀布局问题

如何实现下列这种多列均匀布局(图中直线为了展示容器宽度,不算在内):

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

方法一:display:flex

CSS3 弹性盒子(Flexible Box 或 Flexbox),是一种布局方式,当页面需要适应不同的屏幕大小以及设备类型时,它依然能确保元素拥有更恰当的排布行为。

当然 flex 布局应用于移动端不错,PC 端需要全兼容的话,兼容性不够,此处略过不谈。

方法二:借助伪元素及 text-align:justify

定义如下 HTML 样式:

   <div class="container">
		<div class="justify">
			<p>1</p>
			<p>2</p>
			<p>3</p>
			<p>4</p>
			<p>5</p>
			<p>6</p>
		</div>
	</div>

我们知道,有个 text-align:justify 可以实现两端对齐文本效果。

text-align CSS 属性定义行内内容如何相对它的块父级元素对齐。text-align并不控制元素自己的对齐,只控制它的行内内容的对齐。

采用如下css:

.justify{
		text-align: justify;/*让文字向两端对齐*/
		background: #ddd;
		}
.justify p{
        margin:0px;
		width:24px;
		line-height:24px;
		display:inline-block;
		text-align:center;
		border-radius:50%;
		background:#000;
		color: #fff;
}

结果如下:

没有得到意料之中的结果,并没有实现所谓的两端对齐,查找原因,

虽然 text-align:justify 属性是全兼容的,但是要使用它实现两端对齐,需要注意在模块之间添加[空格/换行符/制表符]才能起作用。

算是在页面加了空格还是不行,例如:

   <div class="container">
		<div class="justify">
			<p>1</p>

			<p>2</p>

			<p>3</p>

			<p>4</p>

			<p>5</p>

			<p>6</p>
		</div>
	</div>

显示的效果还是一样的。

我们给 class="justify" 的 div 添加一个伪元素:

       .justify{
		  text-align: justify;/*让文字向两端对齐*/
		  background: #ddd;
		}
		.justify p{
			margin:0px;
			  width:24px;
			  line-height:24px;
			  display:inline-block;
			  text-align:center;
			  border-radius:50%;
			  background:#000;
			  color: #fff;
		}
		.justify:after {
			  content: "";
			  display: inline-block;
			  position: relative;
			  width: 100%;
		}

结果如下:

转载于:https://my.oschina.net/u/1778998/blog/779670

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值