gpt4 book ai didi

html - 如何垂直居中包含标题的元素符号

转载 作者:行者123 更新时间:2023-11-28 00:19:02 24 4
gpt4 key购买 nike

我正在尝试创建一种效果,其中 h# 元素由元素符号括起来。如果标题跨多行,元素符号应位于文本 block 的左侧和右侧,并垂直居中。

以 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,使元素符号位于整个文本 block 的左侧或右侧,并垂直居中?这jsFiddle描述的效果比我描述的还要好。请注意,标题元素上方存在一些容器(它们只是不是它的专用容器)也可以使用。

我不想更改 HTML,因为那是一个太脆弱的解决方案:它需要更改 CMS 模板、内容本身以及对所有 future 内容作者的法令——如果主题发生变化,这将是多余的再次。

最佳答案

我看不到使用文本元素符号点执行此操作的方法,但可以使用背景图像来完成。 CSS3 支持多个背景图像和多个图像位置,因此我们可以在 h1 的任意一端放置一个图像元素符号点,如下所示:

用这个替换你的 CSS:

body {text-align:center}

h1 {
font-weight: bold;
padding: 0 16px;
background-image: url(http://www.getyourgame.net/images/BulletPointGreen.png),url(http://www.getyourgame.net/images/BulletPointGreen.png);
background-position: left center, right center;
background-repeat: no-repeat;
display: inline-block;
}

需要填充来为要点腾出空间。我使用了一些随机的要点图像,但请注意我已经指定了两次。然后我可以为这两个图像指定不同的位置; h1 的一左一右。最后,display:inline-block 阻止了 h1 填充整个宽度,这会导致元素符号点始终位于父元素的边缘,而不是位于父元素的边缘标题文本。

希望这对你有用。

关于html - 如何垂直居中包含标题的元素符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10275253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com