其他一些问题已经解决了如何最好地应用text-align: justify
以使内联块元素均匀分布……例如,如何真正地证明 HTML +
CSS中的水平菜单?
但是,浏览器为“清除”行内块元素行的100%宽度元素提供了自己的行。我不知道如何在不使用line-height: 0;
父元素的情况下摆脱空的垂直空间。
我正在使用的解决方案要求line-height
对子元素应用新的解决方案,但是之前设置的所有内容line- height
都会丢失。有谁知道更好的解决方案?我想避免使用表,以便在必要时可以包装元素,也可以避免使用flexbox,因为还没有浏览器支持。我也想避免使用浮点数,因为间隔的元素数是任意的。
更新了下面的“未来”解决方案信息; 仍未完全支持。
相关CSS
.prevNext {
text-align: justify;
}
.prevNext a {
display: inline-block;
position: relative;
top: 1.2em; /* your line-height */
}
.prevNext:before{
content: '';
display: block;
width: 100%;
margin-bottom: -1.2em; /* your line-height */
}
.prevNext:after {
content: '';
display: inline-block;
width: 100%;
}
说明
在display: block
上:before
有负下边距元素拉文达一行的高度,它消除了多余的线的线,但是置换文本。然后,position: relative
在inline-block
元素上使用时,将抵消位移,但不增加额外的行。
尽管css本身不能直接访问line-height
“单位”,但em
在margin-bottom
和top
设置中的使用很容易容纳任何line- height
作为乘数值之一的给定值。因此1.2
,120%
或1.2em
都 等于 在计算 相对于line- height
,这使得利用em
这里一个不错的选择,因为即使line-height: 1.2
是一组,然后1.2em
对margin- bottom
和top
匹配。良好的编码以规范化站点的外观意味着line- height
应在某个点明确定义,因此,如果使用任何乘数方法,则等效em
单位的值将与相同line-height
。并且如果line- height
设置为非em``px
可以设置的长度(例如)。
使用诸如LESS或SCSS之类的css预处理器绝对具有变量或mixin可以帮助使这些值与适当的值保持匹配line- height
,或者可以使用javascript来动态读取这些值,但实际上,line-height
应该在使用此值的上下文中知道,并在此处进行适当的设置。
更新以缩小文本(无空格)问题
库比(Kubi)的评论指出,删除<a>
元素之间的空格的html缩小会导致对齐失败。一个在内部伪空间<a>
标签没有帮助(但预计,随着空间的内部发生inline-block
元件),<wbr>
之间添加<a>
标签没有帮助(可能是因为休息没有必要到下一行),因此,如果需要最小化,然后解决方案是硬编码的不间断空格字符-
其他空格字符(如稀薄空间和en空格)不起作用(令人惊讶地)。
其中webkit
是落伍(作为第一写这)为:
.prevNext {
text-align: justify;
-moz-text-align-last: justify;
-webkit-text-align-last: justify; /* not implemented yet, and will not be */
text-align-last: justify; /* IE */
}
它适用于FF 12.0+和IE8 +(IE7中为Buggy)。
对于Webkit的,作为39版(至少,可能有早期蹑手蹑脚),它支持它 没有 了-webkit-
,但是扩展 仅 当 _用户_启用了实验性的功能(可在完成chrome://flags/#enable-experimental-web-platform- features
)。有传言说版本41或42应该获得完全支持。由于webkit
尚未得到无缝支持, 因此它仍然只是部分解决方案。但是,我认为我应该发布它,因为它可能对某些人有用。
问题内容: 我的html文档的正文包含3个元素,一个按钮,一个表单和一个画布。我希望按钮和表单右对齐,而画布保持左对齐。问题是当我尝试对齐前两个元素时,它们不再彼此跟随,而是水平地彼此相邻吗?,这是我到目前为止的代码,我希望表格紧跟在右边的按钮之后中间没有空格。 问题答案: 您可以创建一个同时包含表单和按钮的div,然后通过设置将div浮动到右侧。
我目前已经用下面的代码创建了一个JFrame。我希望有三个JLabel,一个在另一个上面,它们对应的JTextFields在右边,下面有四个JButtons(我最终将使用插入来分隔它们)。但是,单元格在一行中在框架顶部对齐。谁能看出我正在犯的错误。多谢了。 它目前正在生产的JFrame是: **我意识到我没有在面板中设置GridBagLayout,所以添加了一行:
我的html文档的主体由3个元素组成,一个按钮、一个表单和一个画布。我希望按钮和窗体右对齐,画布保持左对齐。问题是,当我尝试对齐前两个元素时,它们不再相互跟随,而是水平地紧挨着?,这是我到目前为止的代码,我希望窗体直接跟随在右边的按钮之后,中间没有空格。 null null
问题内容: 内的所有元素应并排且整齐并排,并受到200px高度的限制,并且没有奇怪的边距或填充。相反,您会遇到上述小提琴中出现的陌生感。 是什么原因造成,并得到中途按下页面,我怎么能解决这个问题?另外,我承认使用表可能是解决整个设置的更好方法,但是我想从上面的代码中找出问题,以便从这个错误中学习。 问题答案: 10.8线高的计算:“线高”和“垂直对齐”属性 “ inline-block”的基线是正
问题内容: 遇到了一个奇怪的CSS问题。有人可以解释为什么包含内容的框未垂直对齐吗? 如果您将文本放在class的范围内-它将正确对齐。 问题答案: 默认值是其 将框的基线与父框的基线对齐 注意:您可以通过添加到选择器中来查看此默认值。由于是默认设置,因此对齐方式保持不变。 您需要对其进行更改以使块在顶部对齐,例如: 基准定义为 大多数字母“坐着”且下级延伸到其下的线 解决 为什么 添加文本似乎可
我正在尝试对齐一个div内的项目,我读了一些问题,但仍然有这个疑问。 我目前拥有的: 代码是 null null 类别描述的不起作用:(我希望它位于块的最右侧。 将设置为显式长度不是一个选项,因为“类别描述”的内容是可变的。