线夹(webkit)在 safari 中不起作用

Jos*_* A. 18 css safari sass overflow

    display: -webkit-box;
  -webkit-line-clamp: 5;
  line-clamp: 5;
  -webkit-box-pack: end;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-align: left;
Run Code Online (Sandbox Code Playgroud)

我有这个 P 标签,但在 safari 中不起作用,任何其他浏览器都可以正常工作

小智 26

inline如果不使用元素,多“线夹”(webkit)在 safari 中不起作用。此示例适用于 chrome (v100),但不适用于 safari (v15.1)。

div.hide {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  display: -webkit-box;
  overflow: hidden;
}

button {
  margin-top: 16px;
}
Run Code Online (Sandbox Code Playgroud)
<div id="container" class="hide">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis ducimus magni, commodi nesciunt tempora unde ipsa repellendus impedit recusandae rem aliquid, alias illum sunt consequatur animi laudantium distinctio odit explicabo.</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis totam harum laudantium excepturi repellendus similique non est incidunt vero officia saepe error reprehenderit quibusdam, ex tenetur autem impedit soluta culpa.</p>
</div>

<button onclick="document.querySelector('#container').classList.toggle('hide')">Click me!</button>
Run Code Online (Sandbox Code Playgroud)

但你可以设置display: inline;段落,然后隐藏就可以正常工作了。对于缩进,您可以添加伪元素。

div.hide {
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  display: -webkit-box;
  overflow: hidden;
}

p {
  display: inline;
}

p::after {
  content: " \A\A";
  white-space: pre;
}

button {
  margin-top: 16px;
}
Run Code Online (Sandbox Code Playgroud)
<div id="container" class="hide">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis ducimus magni, commodi nesciunt tempora unde ipsa repellendus impedit recusandae rem aliquid, alias illum sunt consequatur animi laudantium distinctio odit explicabo.</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis totam harum laudantium excepturi repellendus similique non est incidunt vero officia saepe error reprehenderit quibusdam, ex tenetur autem impedit soluta culpa.</p>
</div>

<button onclick="document.querySelector('#container').classList.toggle('hide')">Click me!</button>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是一种黑客行为,可能并不适用于所有情况。然而,使用display: -webkit-box-webkit-line-clamp: 3隐藏也是一种在规范中缺失的黑客行为,这可能就是 safari 不支持它的原因。

最正确可靠的解决方案是使用js进行隐藏


J D*_*ies 1

线夹可以在 Safari 上使用。

它不适用于内部块级元素: CSS line-clamp 在 Safari 中不适用于内部块级元素

.line-clamp{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden; 
  text-overflow: ellipsis;
  overflow: hidden;
  text-align: left;
}
Run Code Online (Sandbox Code Playgroud)
<p class="line-clamp">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
Run Code Online (Sandbox Code Playgroud)