html - 在全宽元素之前添加一个固定宽度的伪元素

标签 html css flexbox

我想在每个 block 引用之前添加一些文本。这是一个例子:

enter image description here

需要注意的是html是markdown生成的,所以不能真正修改。它将始终具有格式 <blockquote> <div>content</div> </blockquote> .

我试过使用 flex 网格,但我真的不知道我在用 flex 做什么。这是我得到的最接近的结果:

blockquote {
    background-color: #ccc;
    display: flex;
}
blockquote > *::before {
    background-color: #333;
    color: white;
    content: "quote";
    flex: 2em;
    display: inline-block;
    transform: translate(-50%, 0) rotate(-90deg);
}
blockquote > * {
    flex: 100%;
}
<blockquote>
    <p> Lorem ipsum dolor </p>
</blockquote>

<blockquote>
    <ol>
        <li>blah</li>
        <li>blah</li>
        <li>blah</li>
    </ol>
</blockquote>

<blockquote>
    <div> other content </div>
</blockquote>

最佳答案

你可以看看 writing-mode 和 flex(我仍然添加不同于@itod 的回答方法)

blockquote {
  background: linear-gradient(to right, gray 1.5em, lightgray 1.5em) lightgray;
  display: flex;
  align-items: center;
  padding-left: 2em;
}

blockquote:before {
  content: ' quote';
  padding: 0.5em 0;
  color: white;
  margin: auto 0;
  width: 1.5em;
  writing-mode: vertical-rl;
  transform: scale(-1) translatex(1.9em)
}
<blockquote>
  <p> Lorem ipsum dolor </p>
</blockquote>

<blockquote>
  <ol>
    <li>blah</li>
    <li>blah</li>
    <li>blah</li>
  </ol>
</blockquote>

<blockquote>
  <div> other content </div>
</blockquote>

关于html - 在全宽元素之前添加一个固定宽度的伪元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46145972/

相关文章:

html - 应用显示 :flex to a form

html - 居中一个 flex 元素并底部对齐另一个

javascript - CSS Flexbox div 自动更改顺序以填充空白

html - 将鼠标悬停在同一父项内的不同类上时是否可以显示一个类?

php - 使用 Server-Sent 事件广播消息

html - Firefox border-radius 呈现奇怪的宽效果

jquery - 阻止 mouseenter 事件父级

html - 带有 flexbox 和静态宽度的 CSS 侧边栏

css - 样式列表项,用 fontawesome 替换 bullet

javascript - 更改类名不会更改 CSS