【发布时间】:2023-10-31 20:53:01
【问题描述】:
我正在尝试为我的标题实现一种类似于我的徽标的样式,如下所示:
所以我为标题添加了一些 CSS 来创建一些像这样的功能区:
body {
text-align: center;
}
h1,
h2 {
color: white;
background-color: #f3a692;
text-shadow: -1px 1px rgba(208,96,0,0.5);
display: inline-block;
line-height: 1.6em !important;
padding: 0 10px !important;
margin-bottom: 20px;
}
h1:before,
h2:before {
border-left-color: transparent !important;
transform: translateX(-100%);
}
h1:after,
h2:after {
border-right-color: transparent !important;
}
h1:after,
h1:before,
h2:after,
h2:before {
content: '';
border-color: #f3a692;
border-style: solid;
border-width: 0.8em;
position: absolute;
}
<body>
<h1>Hello World</h1>
<p>This is just a small test</p>
<h2>Okay, thats nice!</h2>
<p>Here is some more text for no particular reason.</p>
</body>
它几乎可以按我的意愿工作,但我有一些问题我无法解决。我希望你能帮助我弄清楚我做错了什么:
- 根据视口宽度,某些标题有时会在功能区高度和标题背景之间存在 1 像素的差异,从而导致可见的台阶。如何确保功能区始终与标题高度相同 - 独立于标题字体、字体大小和行高?
- 当视口不够宽且文本被换行时,尾随功能区会被标题覆盖。我可以做些什么来实现徽标中的外观,其中每行都有自己的背景,文本左右有一些填充以及第一行和最后一行的功能区?最终结果应该类似于下图中“2”的第二张图片
【问题讨论】: