html - CSS如何获得带有工作的::first-line伪元素的内联显示
问题描述
这看起来很简单,但我无法让它工作,无论是组合float
,inline-block
等等。我试图在第一行获得更多空间,以便第二行不会与标题“冲突”。我知道这::first-line
不适用于inline
元素。我想保留这个布局(布局是重要的,而不是inline
显示,所以任何工作都可以)。该解决方案应具有广泛的浏览器支持。
我的设计必须保持响应性,因此不应将文本切割成不同的部分。我可以在 javascript 中执行此操作并通过在 上运行脚本来保持响应resize
,但我真的很想避免这种解决方案。
编辑: @TemaniAfif 关于设置inline-block
标题的评论对我的特殊情况有用,但对于好奇和未来的读者来说,它并不直接回答伪元素。例如,如果有人想要大写或更改颜色,我觉得这个问题仍然有效,所以我正在编辑片段。
.heading {
padding: 5px;
background-color: blue;
color: white;
}
.content {
margin-left: 5px;
}
.content::first-line {
line-height: 2;
text-transform: uppercase;
color: red;
}
.block {
display: block;
}
<b>Display is fine, first-line doesn't work because of inline + margin left works fine:</b>
<br><br>
<span class="heading">header: </span>
<span class="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</span>
<br><br>
<b>Display is out now that first-line works because of block (or inline-block) + margin left out too:</b>
<br><br>
<span class="heading">header: </span>
<span class="content block">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</span>
解决方案
您并没有真正描述应该如何对齐,但是通过组合第一个单词float:left;
的否定margin-top
设置span
(也与我在下面使用的值不同),您应该能够得到您想要的:
.heading {
float:left;
margin: -10px 0 0 0;
padding: 5px;
background-color: blue;
color: white;
}
.content {
margin-left: 5px;
}
<b>Display is fine, first-line doesn't work because of inline + margin left works fine:</b>
<br><br>
<span class="heading">header: </span>
<span class="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</span>
推荐阅读
- python-3.x - 在数据框中查找字符串的计数(由分隔符分隔)?
- r - How to get the percentages of a variable for each subgroups?
- javascript - Save multiple results in the localstorage
- java - Java Rename Problem with normale Files. With i want to rename given name to a new filename
- sql - What databases support logarithmic prefix search?
- c# - 如何将 POST 请求正文中的有效 XML 提交到使用 XML 的 ASP.NET Core Web API?
- r - 如何在 [r] 中缺少值的数据中使用多个关系运算符为新变量赋值?
- ruby-on-rails - Why does Rails not recognize a *.js.coffee template?
- python - Iterate data structure while it is updated
- linux - Linux 设备树找不到在其正上方声明的元素