遇到的问题

这两天在开发一个病历的对外展示页面,设计稿上label是左右拉伸对齐的,显示效果如下:

怎么实现这种效果呢?

首先想到的是文字中间加空格,但是这种方式太low了,而且不太容易控制。网上查资料,发现用justify可以实现。

.item-field {
display: inline-block;
width: 80px;
text-align: justify;
}
.....
<div>
<label class="item-field">主诉:</label>
</div>

但是加上上述样式后,文字依然没有左右对齐。

justify为什么没有生效呢?

查询MDN上关于text-align的介绍,发现text-align有以下规则:

  1. text-align只对块级元素或者table-cell有效果
  2. text-align并不控制块元素自己的对齐,只控制它的行内内容的对齐
  3. justify :文字向两侧对齐,对最后一行无效

由于label标签的内容"主诉"只有一行,所以justify没有生效

解决方式

给label标签添加伪元素,伪元素独占一行且是最后一行,这样label的内容就可以左右对齐

.item-field {
display: inline-block;
width: 80px;
text-align: justify;
line-height: 0;
} .item-field::after {
content: '';
height: 0;
width: 100%;
display: inline-block;
line-height:
}

注释:

::after用来创建一个伪元素,作为已选中元素的最后一个子元素。通常会配合content属性来为该元素添加装饰内容。这个虚拟元素默认是行内元素。

为什么不使用justify-all

text-align还有一个可选值justify-all, 根据MDN上的定义:justify-all同justify一样,区别是最后一行也会两端对齐。

为什么不使用justify-all呢?因为justify-all是一个体验性的API,各个主流浏览器都不支持浏览器支持度

小结

text-align: justify可以设置元素内容左右对齐,但是对最后一行不生效。如果内容只有一行,可通过伪元素添加一个空行,实现内容左右对齐的效果。

参考

首发地址:http://www.geeee.top/2019/11/20/justify/, 转载请注明出处!

左右对齐Justify遇到的坑的更多相关文章

  1. 完美 全兼容 解决 文字两端对齐 justify 中文姓名对齐

    text-align:justify; 所有浏览器都支持,text-justify之类的却只有IE支持,就不要考虑了. justify我的理解,使元素内部的子元素两端对齐,子元素当然只能是inline ...

  2. 两端对齐justify

    //容器设定text-align:justify.justify{ text-align: justify; } //容器里面的元素 .justify i{ width:24px; line-heig ...

  3. text-align:justify_内容居中对齐

    一直发现text-align : justify这个对齐方式不好使,都不知道为什么么么哒: 因为两端对齐的这个行的结束要一个有空字符串或者别的不可见的字符,用户代理会把这个行的最后几个字符往右边拉,实 ...

  4. CSS两端对齐

    前面的话   两端对齐在导航条Tab的制作中非常常用.本文将详细介绍CSS两端对齐的3种实现方式 flex   弹性盒模型flex作为强大的弹性布局方式,可以hold住大部分的布局效果,当然也包括两端 ...

  5. Day042---浮动 背景图设置 相对定位绝对定位

    1.练习浮动 2.文本属性和字体属性 文本对齐 ​ text-align left 左对齐 right 右对齐 center 中心对齐 justify 两边对齐 只适应于英文 text-indent ...

  6. 前端之CSS——属性和定位

    一.字体属性 1.font-size(字体大小) p { font-size: 14px; } font-size 属性可设置字体的尺寸. px:像素,稳定和精确 %:把 font-size 设置为基 ...

  7. css属性 盒子模型

    一.    css属性相关 1.宽和高    1.width可以为元素设置宽度 2. height可以为元素设置高度 3.只有块级标签才可以设置宽度和高度,内联标签并不能设置宽度和高度,及时设置了也不 ...

  8. CSS3-03 样式 2

    前言 在上一篇的博客中,阐述了 CSS 盒模型中的 Margin.Border.Padding 三个样式.但是总觉得,这些东西好像是 HTML 元素的包装样式,真正的要点是 HTML 元素(即:盒模型 ...

  9. CSS前5课总结

    CSS<精通CSS.DIV网页样式与布局>视频前5课总结: 地对地导弹 第一课: 使用CSS控制页面: 1,行内样式 <p style="color:#0000FF; fo ...

随机推荐

  1. Rust第一次综合练习

    读取文件哈. 但分成了lib.rs和main.rs. 按文档上不行,自己胡乱的调通,但原理不熟悉. 里面的套路代码还是蛮多的. src/lib.rs use std::io::Read; use st ...

  2. react知识点

    http://www.cocoachina.com/webapp/20150721/12692.html http://blog.csdn.net/slandove/article/details/5 ...

  3. HTML与CSS学习笔记(1)

    1.web三大核心技术? HTML CSS JavaScript 2.HTML基本机构和属性 HTML:超文本 标记 语言 超文本:文本内容+非文本内容(图片.视频.音频等) 标记:<单词> ...

  4. Linux服务器惨遭挖矿

      昨天为了协助客户测试业务,帮客户开通了一台云主机,因为是测试环境所以密码设置的很简单:1qaz@WSX,今天登陆的是否发现密码认证不通过了,确定机器是被黑掉了,估计多半是被国外小哥入侵挖矿了,记录 ...

  5. Autofac注册组件详解

    注册概念:我们通过创建 ContainerBuilder 来注册 组件 并且告诉容器哪些 组件 暴露了哪些 服务.组件 可以通过 反射 创建; 通过提供现成的 实例创建; 或者通过 lambda 表达 ...

  6. Bootstrap-table 单元格合并 、表头合并

    1.页面引入js/css @*1.Jquery组件引用*@ <script src="~/Scripts/jquery-1.10.2.js"></script&g ...

  7. 7.18 NOIP模拟测试5 星际旅行+砍树+超级树

    T1 星际旅行 题意:n个点,m条边,无重边,有自环,要求经过m-2条边两次,2条边一次,问共有多少种本质不同的方案.本质不同:当且仅当至少存在一条边经过次数不同. 题解:考试的时候理解错题,以为他是 ...

  8. Linux性能优化实战学习笔记:第五十讲

    一.上节回顾 上一节,我以 ksoftirqd CPU 使用率高的问题为例,带你一起学习了内核线程 CPU 使用率高时的分析方法.先简单回顾一下. 当碰到内核线程的资源使用异常时,很多常用的进程级性能 ...

  9. Django中render_to_response和render的区别(转载)

    转载地址:https://www.douban.com/note/278152737/ 自django1.3开始:render()方法是render_to_response的一个崭新的快捷方式,前者会 ...

  10. Win10 1903 运行安卓模拟器蓝屏解决方案

    由于没有安卓机,想要测试一些东西,所以选择了安卓模拟器,可是一运行模拟器就导致电脑蓝屏,试了 N 次都不行. 于是在网上寻找解决方案,了解到导致蓝屏的原因都是因为虚拟化技术,我的系统是 Windows ...