html - HTML/CSS - 将多个文本元素连接在一起
问题描述
我有以下代码:
HTML:
<div class="wrapper">
<p>Example text</p>
<p>Example text 2</p>
<div class="markdown">
<p>Lorem ipsum dolor sit amet, <strong>consectetur</strong> adipiscing elit. Curabitur aliquam velit nec molestie pharetra. Etiam fermentum <code>ligula</code> non justo ornare mollis. Praesent vitae metus erat. Morbi vitae sollicitudin justo.</p>
</div>
</div>
CSS:
.wrapper {
display: flex;
flex-wrap: wrap;
align-items: center;
}
它有一个包装器 div、一些p
元素,然后是一个div
带有渲染的降价。但是,如JSFiddle中所见,前两个p
元素连接在一起,但文本的其余部分没有。我怎样才能让它看起来像一个连续的文本元素?
解决方案
你div
被包裹在下一行,因为它足够大。flex-wrap
对此行为负责。没有flex-wrap
它看起来像这样:
.wrapper {
display: flex;
align-items: center;
}
<div class="wrapper">
<p>Example text</p>
<p>Example text 2</p>
<div class="markdown">
<p>Lorem ipsum dolor sit amet, <strong>consectetur</strong> adipiscing elit. Curabitur aliquam velit nec molestie pharetra. Etiam fermentum <code>ligula</code> non justo ornare mollis. Praesent vitae metus erat. Morbi vitae sollicitudin justo.</p>
</div>
</div>
但是,它只会并排创建 3 个块,看起来不像是连续的文本元素。除非它真的是一个连续的文本,否则任何 flex 属性都不能做到这一点。
块元素上的连续文本
您可以使用display:contents;
来实现这样的事情:
.wrapper {
display: flex;
align-items: center;
}
.wrapper * {
display: contents;
}
<div class="wrapper">
<p>Example text</p>
<p>Example text 2</p>
<div class="markdown">
<p>Lorem ipsum dolor sit amet, <strong>consectetur</strong> adipiscing elit. Curabitur aliquam velit nec molestie pharetra. Etiam fermentum <code>ligula</code> non justo ornare mollis. Praesent vitae metus erat. Morbi vitae sollicitudin justo.</p>
</div>
</div>
display: contents
导致元素的子元素看起来好像是元素父元素的直接子元素,忽略元素本身。资料来源:caniuse.com
推荐阅读
- ruby - 如何从代码中守护 ruby 服务器?
- java - 如何将文本字段值添加到选择框?
- excel - 运行时错误 1004 使用 vba 的 vlookup 中的应用程序定义或对象定义错误
- reactjs - 如果 initialValue 更改,则更新 antd 表单
- java - 如何使用内部变量制作 String.format 标志
- java - 如何将数组长度设置为变量,Java
- modbus - 配置 Modbus 从站自动增量
- database - 无法连接到 PgBouncer 管理控制台
- html - 悬停效果适用于页面中的所有锚标签
- python - sns.scatter plot python,指定大小