検索
ホームページウェブフロントエンドCSSチュートリアルCSS box-decoration-break プロパティの詳細

この記事では、box-decoration-break 属性について詳しく理解します。一定の参考値があるので、困っている友達が参考になれば幸いです。

CSS box-decoration-break プロパティの詳細

過去 2 日間で、私は非常に興味深い CSS プロパティである box-decoration-break に遭遇しました。以下で一緒に調べてみましょう。

この属性に関する中国語のドキュメントは MDN にないため、合理的で適切な中国語の翻訳を考えてきました。直訳:

  • box -- ボックス、要素ボックス モデルとして理解できます
  • decoration -- 装飾、要素スタイルとして理解できます
  • break --改行、参照 word-break、改行の表現として理解されます

次に、この属性は、改行が発生したときの要素のスタイルの表現としてまず理解できます。

MDN の英語の説明は次のとおりです。 box-decoration-break CSS プロパティは、要素のフラグメントが複数の行、列、またはページにまたがるときにどのようにレンダリングされるかを指定します。一般的な考え方は、box-decoration-break 属性は、改行/改行が発生したときに要素フラグメントをレンダリングする方法を指定するというものです。

オプションの値は 2 つだけです:

{
    box-decoration-break: slice;   // 默认取值
    box-decoration-break: clone;
}

改行例

この属性は通常、インライン要素に作用します。次のような構造があり、それに境界線を追加するとします。

<span>ABCDEFGHIJKLMN</span>
span {
    border: 2px solid #999;
}

さて、その効果は次のとおりですが、目立ったものではありません。

CSS box-decoration-break プロパティの詳細

わかりました。 continue 次のステップは Break です。上の行のテキストを分割しますが、スタイルは変更されません:

<span>ABCD <br>EFG <br> HI<br> JKLMN</span>

次の結果が得られます:

CSS box-decoration-break プロパティの詳細

O , テキストが折り返されていることがわかります同時に、枠線もそれに応じて変化します。最初と最後の行には 3 辺の枠線があり、中央の 2 行には上下の枠線しかありません。 4 つの線を組み合わせると、図 1 が形成されます。これは通常の表示効果です。

次に、この記事の主人公を追加しますbox-decoration-break: clone

span {
    border: 2px solid #999;
+   box-decoration-break: clone;
}

これが有効になると、次の結果が得られます:

CSS box-decoration-break プロパティの詳細

box-decoration-break: clone の使用法の概要

これを見ると、この属性が何であるかをすでに大まかに理解できます。

は、box-decoration-break: clone のインライン要素を使用します。改行表示がある場合、各行には、オリジナルの単一行。スタイル

理解を深めるために例を見てみましょう。box-decoration-break: clone を前後に 2 つの効果を付けて使用する次のような構造があります:

<span >每一行 <br/>样式 <br/> 都 <br/> 保持<br/> 完整独立</span>

CSS box-decoration-break プロパティの詳細

CodePen デモ -- box-decoration-break

https://codepen.io/Chokcoco/pen/NJKoNq

box-decoration-break: clone 有効なスタイルの影響範囲

##box-decoration-break: clone を使用した要素ももちろん対象すべてのスタイルに効果があるわけではなく、次のスタイルにのみ適用されます:

    background
  • border
  • border-image
  • box- shadow
  • clip -path
  • margin
  • padding
  • Syntax

#box-decoration-break: 実際のクローンを作成しますapplication

信頼できる実用的なアプリケーション シナリオがあるかどうかを見てみましょう。 <p></p>

box-decoration-break: テキスト選択効果を実現するためにクローンを作成します。

このようなシナリオが考えられます。複数のテキストの特定のセクションを強調表示したいとします。行テキスト。この時点で、

でネストして、 で囲まれたテキストに特定の表示を実行できます。

たとえば、次のコピーがあります:

<p>
The <span>box-decoration-break</span> CSS property specifies how an element&#39;s fragments should be rendered when broken across multiple lines, columns, or pages..Each box fragment is rendered independently with the <span>specified border, padding, and margin wrapping each fragment.</span> The border-radius, border-image, and box-shadow are applied to each <span>fragment independently.</span> 
</p>

その中で、強調する必要があるコンテンツを

タグで囲みます。これを特定のスタイルにして box-decoration-break: clone を追加すると、強調コピーが改行であるかどうかに関係なく、各場所の強調背景は同じになります:

p {
    font-size: 22px;
    line-height: 36px;
}

span {
    background-image: linear-gradient(135deg, deeppink, yellowgreen);
    color: #fff;
    padding: 2px 10px;
    border-radius: 50% 3em 50% 3em;
    box-decoration-break: clone;
}

次の効果が得られます:


CSS box-decoration-break プロパティの詳細

box-decoration-break: clone が追加されていない場合はどうなりますか?改行があると、その効果は大幅に減少します。

CSS box-decoration-break プロパティの詳細

#CodePen デモ -- text-decoration-break テキスト選択効果

https://codepen.io/Chokcoco/pen/rRaLqo

box-decoration-break 每行文字带特定边框

又会有这样的场景,我们希望每一行文案都带有特定的边框样式,像这样:

CSS box-decoration-break プロパティの詳細

怎么实现呢?也许可以每一行都是一个 <p></p>,每一行 <p></p> 设定上述样式。但是如果文本内容不确定,容器的宽度也不确定呢

这种场景,使用 box-decoration-break 也非常便捷。当然这里有个小技巧,正常而言, box-decoration-break: clone 只对 inline 元素生效,如果我们的文案像是这样包裹在 <p></p> 标签内:

<p>
The box-decoration-break CSS property specifies how an element&#39;s fragments should be rendered when broken across multiple lines, columns, or pages..Each box fragment is rendered independently with the specified border, padding, and margin wrapping each fragment. The border-radius, border-image, and box-shadow are applied to each fragment independently. 
</p>

要使 box-decoration-break: clone<p></p> 生效,可以通过设定 <p></p>display: inline 来实现。如此一来,要实现上述效果,我们只需要:

p {
    display: inline;
    box-decoration-break: clone;
    background:linear-gradient(110deg, deeppink 0%, deeppink 98%, transparent 98%, transparent 100%);
}

无论文本内容或者容器宽度如何变化,都能完美适配:

CSS box-decoration-break プロパティの詳細

CodePen Demo -- box-decoration-break 每行文字带特定边框

https://codepen.io/Chokcoco/pen/gEbMGr?editors=1100

box-decoration-break 结合过渡动画

结合上面的内容,我们还可以考虑将 box-decoration-break 与过渡效果或者动画效果结合起来。

譬如,我们希望当我们 hover 文字内容的时候,一些重点需要展示的文字段落能够被强调展示,可能是这样:

CSS box-decoration-break プロパティの詳細

CodePen Demo -- box-decoration-break 过渡动画

https://codepen.io/Chokcoco/pen/ZPGpmd

又或者是这样:

CSS box-decoration-break プロパティの詳細

CodePen Demo -- box-decoration-break 结合过渡动画

https://codepen.io/Chokcoco/pen/ZPGpmd

你可以尝试点进 Demo ,然后去掉 box-decoration-break: clone ,会发现效果大打折扣。

兼容性

额,按照惯例兼容性应该都不太行。并且 MDN 也给出了这样的提示:

This is an experimental technology. Check the Browser compatibility table carefully before using this in production.

看看 Can I Use,其实还好,除了 IE 系列全军覆没,所以可以考虑应用在移动端。即便这个属性不兼容,降级展示对页面不会造成什么影响:

1CSS box-decoration-break プロパティの詳細

另外,本文中,给出的代码都是 box-decoration-break: clone ,CodePen 自带了 autoprefixer 实际中可能需要写成:

{
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

最后

国内看到了大漠老师和张鑫旭大大都已经写过这个属性,大家可以对比着看看,加深理解:

好了,本文到此结束,希望对你有帮助 :)

更多编程相关知识,请访问:编程视频!!

以上がCSS box-decoration-break プロパティの詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
利用CSS怎么创建渐变色边框?5种方法分享利用CSS怎么创建渐变色边框?5种方法分享Oct 13, 2021 am 10:19 AM

利用CSS怎么创建渐变色边框?下面本篇文章给大家分享CSS实现渐变色边框的5种方法,希望对大家有所帮助!

css ul标签怎么去掉圆点css ul标签怎么去掉圆点Apr 25, 2022 pm 05:55 PM

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

css与xml的区别是什么css与xml的区别是什么Apr 24, 2022 am 11:21 AM

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

css3怎么实现鼠标隐藏效果css3怎么实现鼠标隐藏效果Apr 27, 2022 pm 05:20 PM

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

css怎么实现英文小写转为大写css怎么实现英文小写转为大写Apr 25, 2022 pm 06:35 PM

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

rtl在css是什么意思rtl在css是什么意思Apr 24, 2022 am 11:07 AM

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

css怎么设置i不是斜体css怎么设置i不是斜体Apr 20, 2022 am 10:36 AM

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

怎么设置rotate在css3的旋转中心点怎么设置rotate在css3的旋转中心点Apr 24, 2022 am 10:50 AM

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境