それはできます。私はvwユニットを使用しました。
このWorking Fiddleを見てください
HTML:
<h1 class="SpecialBorder">Title</h1>
CSS:
*
{
margin: 0;
padding: 0;
}
.SpecialBorder
{
display: inline-block;
position: relative;
}
.SpecialBorder:before , .SpecialBorder:after
{
content:'';
position: absolute;
left: 0;
bottom: 0;
}
.SpecialBorder:before
{
width: 100vw;
border-bottom: 1px solid red;
}
.SpecialBorder:after
{
width: 100%;
border-bottom: 1px solid blue;
}
説明:before
&疑似要素は
、after
境界線を描画する要素です。どちらも空の要素です。境界線が見えるようにする特定の幅があります。
それらは<h1>
親の一番下に絶対に位置しています。
before
: 赤い境界線を担当します。そのため、彼の幅はビューポートの「100%」に設定されています。
after
: 赤い境界線を担当します。したがって、彼の幅は100%
彼の親 ( <h1>
) にh1
設定されているため、 は「display:inline-block;」に設定されています (したがって、彼のコンテンツと同じようにのみにまたがります)
vw
unit は新しいブラウザのみでサポートされています。
vw
単位を使用できない場合でも、それに慣れ親しんだものを作成できることに注意してください。display:inline-block;
fromを削除してh1
(再び全体に広がるようにする) to の幅を変更before
し100%
(全体にまたがるようにする)、 with をafter
任意の固定値に変更します。
編集:thgaskellがコメントで述べたように、
vw
ウィンドウのサイズが変更されたときに、Webkit ブラウザーで単位が適切に更新されないというバグがあります。
編集 2:
タイトルの後に表示する要素を作成するには、<br />
タグを使用するか、ここに示されているようなクリア テクニックを使用できます。