我正在尝试创建一个h#
元素被项目符号字符括起来的效果。如果标题跨越多行,则项目符号应位于文本块的左侧和右侧,并垂直居中。
以 HTML5 和 CSS3 为例:
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<div class="content-container">
<h1>Short title</h1>
<h1>Really long title that will hopefully span multiple lines to demonstrate the problem I'm trying to solve here</h1>
</div>
</body>
</html>
h1 {
font-weight: bold;
text-align: center;
}
h1:before {
content: '— ';
}
h1:after {
content: ' —';
}
这会渲染项目符号,但是当有换行符时,项目符号最终会与文本本身一起换行。
如何更改 CSS 以使项目符号位于整个文本块的左侧或右侧,并垂直居中?这个jsFiddle描述的效果比我描述的要好。请注意,在 header 元素上方存在一些容器(它们只是不是它的专有容器)也可以使用。
我不想更改 HTML,因为这是一个太脆弱的解决方案:它需要更改 CMS 模板、内容本身以及对所有未来内容作者的命令——如果主题再次更改,这将是多余的。