css 文本背景新行填充问题

qltillow  于 2022-12-15  发布在  其他
关注(0)|答案(5)|浏览(179)

我正在处理文本块(文本上的背景块),并面临一些新行填充的问题。问题发生时,浏览器(如移动的)削减到两行由于缺乏宽度的文本。文本然后看起来像这样:

我真的不知道如何在新行的末尾设置一个css填充,因为它可能会在句子的任何地方断开。你可以说用填充在上面放一个span,但是它不是固定的,它取决于宽度。有什么建议吗?

zyfwsgd6

zyfwsgd61#

你可以使用display: inline-block,但是这会把背景颜色变成一个难看的框,看起来不如每行有一个精确宽度的背景。不幸的是,CSS不允许我们针对单独的行,除了第一行。
如果你不介意有点“创意”(或hacky),你可以在后台将每个单词 Package 在它自己的元素中,或者使用JavaScript,并将背景颜色应用到这些元素中。

.main {
  font-family: sans-serif;
  font-weight: bold;
  background-color: #99c;
  display: flex;
  height: 400px;
  flex-direction: row;
  align-items: center;
}

.text-container {
  max-width: 500px;
  display: inline-block;
  word-spacing: -15px;
  position: relative;
  padding-left: 20px;
  overflow: hidden;
}

.text-container::before {
  content: '';
  background-color: black;
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 100%;
  z-index: 1;
}

span {
  font-size: 36px;
  line-height: 1.5em;
  color: white;
  background-color: black;
  padding: 0.25em 0.5em 0.25em 0;
  max-width: 360px;
}
<div class="main">
  <div class="text-container">
    <span>A</span> <span>Movie</span> <span>in</span> <span>the</span> <span>park:</span> <span>Kung</span> <span>Fu</span> <span>Panda</span>
  </div>
</div>
798qvoo8

798qvoo82#

您可以使用box-shadow解决此问题并内联显示:

<div class="text">
    <span class="text-container">A Movie in the park: Kung Fu Panda</span>
</div>

和css:

.text > span {
    display: inline;
    box-shadow: 25px 0 0 black, -10px 0 0 black;
    background-color: black;
    color: white;            
}
9jyewag0

9jyewag03#

尝试在“Park:“之后和“Kung”之前添加&nbsp;

p1iqtdky

p1iqtdky4#

padding worked!!!通过控制台浏览器更改宽度并查看结果:

h1{
    background-color: #ff6a6a;
    padding: 33px;
    display: inline-block;
    word-wrap: break-word;
    width:300px
}
<h1>rert ert erttttttttttttttt 00000000000000000000 dfgdfgd dfgdfgdft ertert  </h1>
aiazj4mn

aiazj4mn5#

使用<p>标签来 Package 文本,它显然可以工作在demo

<div class="main">
  <div class="text-container">
    <p id="test">A Movie in the park: Kung Fu Panda</p>
  </div>
</div>

CSS

.main {
  font-family: sans-serif;
  font-weight: bold;
  background-color: #99c;
  display: flex;
  height: 400px;
  flex-direction: row;
  align-items: center;
}

.text-container {
  max-width: 400px;
}

p {
  font-size: 36px;
  line-height: 2em;
  color: white;
  background-color: black;
  padding: 0.5em;
  max-width: 360px;
}

相关问题