css - :Before psuedo-element same height as non-relative parent

标签 css css-position pseudo-element

我正在尝试创建一个 CSS 类,将元素标记为“已修改”。修改的元素由页面主体左侧边距中的垂直线指示。

我正在使用 :before 伪元素,但是因为我的元素没有相对位置,所以我似乎无法让它与父元素匹配相同的高度。

添加 position:relative 将允许我匹配高度,但不会将标记相对于左侧对齐,因为该元素可能具有填充/边距,这意味着左边距未与左侧对齐 body 。

我在这里做了一个快速的 fiddle :https://jsfiddle.net/5k8ruahm/5/

我所问的问题可能无法仅使用 CSS 来实现,但在求助于 JavaScript 之前,我想我应该在这里问。

最佳答案

您可以将 .modified 设为 flex 父级,它将拉伸(stretch)每个子级(内容和 :before)以匹配高度默认情况下是父级的。然后使用 translateX() 将线移动到父级旁边。

.content {
  padding-left: 50px;
}

.modified {
  display: flex;
}

.modified:before {
  content: "\a0";
  border-left: 3px solid #f00;
  transform: translateX(-1em);
}
<div class="content">
  <p class="modified">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque in ipsum ac nisl commodo dapibus posuere sit amet lorem. Sed pulvinar dui purus, sed sollicitudin tortor efficitur eget. Maecenas et tempus tortor, ut maximus nunc. Proin pretium varius
    consectetur. Quisque dignissim eros nec odio ornare interdum. Praesent quis dui eget libero tempus venenatis vitae eu massa. Ut orci neque, sodales in nisi quis, pretium ultrices risus.
  </p>
</div>

关于css - :Before psuedo-element same height as non-relative parent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44335913/

相关文章:

javascript - jquery 汉堡菜单有什么问题?

javascript - 动画后重置 div

html - 定位一个伪 :after element to the right of a list item

html - 没有相对宽度的CSS位置相对?

CSS 模糊过滤器不适用于 MS Edge 中的某些伪元素

html - 如何使用:before and :after pseudo-elements

css - 如何使用 glyphicon 作为超链接创建跨度?

css - 停止绝对定位元素与左列 CSS 重叠

html - 从中心开始后的伪元素 - CSS

css - 使用 CSS 在移动设备上设置访问 key ?