html5 css3だけでborder dashed の破線を交互に違う色にする方法を教えてください?
よろしくお願いいたします。例えは、赤破線 青破線 赤破線 青破線の順で枠を作成するとき。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/21 23:57
2020/10/21 23:57
2020/10/21 23:58 編集
2020/10/22 00:48
2020/10/22 00:51
回答2件
0
背景画像として上下左右分の線をlinear-gradientで用意して、元のdivに重ねています。
https://www.ameamelog.com/css-dotline/をかなり参考にさせていただきました。
html
1<div class="border-bottom">test</div>
css
1.border-test::after { 2 content: ""; 3 background-image: 4 linear-gradient(to right, #f00, #f00 3px, transparent 3px, transparent 8px, #00f 8px, #00f 11px, transparent 11px, transparent 16px), 5 linear-gradient(to right, #f00, #f00 3px, transparent 3px, transparent 8px, #00f 8px, #00f 11px, transparent 11px, transparent 16px), 6 linear-gradient(to bottom, #f00, #f00 3px, transparent 3px, transparent 8px, #00f 8px, #00f 11px, transparent 11px, transparent 16px), 7 linear-gradient(to bottom, #f00, #f00 3px, transparent 3px, transparent 8px, #00f 8px, #00f 11px, transparent 11px, transparent 16px); 8 background-size: 16px 1px, 16px 1px, 1px 16px, 1px 16px; 9 background-position: left top, left bottom, left top, right top; 10 background-repeat: repeat-x, repeat-x, repeat-y, repeat-y; 11 position: absolute; 12 top: 0; 13 bottom: 0; 14 left: 0; 15 right: 0; 16 pointer-events: none; 17}
以下元の回答(下線の場合)
linear-gradient
を利用した背景をx方向に並べることでそれっぽくなると思います。
線分の長さや太さは各数字を調整すれば変更できます。
いろいろいじってみてください。
html
1<div class="border-bottom">test</div>
css
1.border-bottom { 2 background: linear-gradient(to right, #f00, #f00 3px, transparent 3px, transparent 8px, #00f 8px, #00f 11px, transparent 11px, transparent 16px); 3 background-repeat: repeat-x; 4 background-size: 16px 1px; 5 background-position: left bottom; 6}
投稿2020/10/22 00:58
編集2020/10/22 01:39総合スコア3235
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/22 01:16
2020/10/22 04:20
2020/10/22 04:26
2020/10/22 04:34
0
ベストアンサー
何をしたいのかよく分からないですが、推測でサンプル作成してみました。
下記のような感じでどうですか。
html
1<h2 class="sample">sample</h2>
css
1h2{ 2 font-size: 20px; 3 color: #4169e1; 4 font-weight: bold; 5 margin: 10px; 6 padding: 10px; 7} 8 9.sample { 10 border-top: 3px solid; 11 border-bottom: 3px solid; 12 border-image: repeating-linear-gradient( 13 90deg, 14 red , 15 red 3px, 16 #fff 3px, 17 #fff 6px, 18 blue 6px, 19 blue 9px, 20 #fff 9px, 21 #fff 12px 22 ); 23 border-image-slice: 1; 24 border-image-repeat: repeat; 25 position: relative; 26} 27 28.sample::after { 29 content: ""; 30 display: block; 31 position: absolute; 32 top: 0; 33 bottom: 0; 34 left: 0; 35 right: 0; 36 border-left: 3px solid; 37 border-right: 3px solid; 38 border-image: repeating-linear-gradient( 39 0deg, 40 red , 41 red 3px, 42 #fff 3px, 43 #fff 6px, 44 blue 6px, 45 blue 9px, 46 #fff 9px, 47 #fff 12px 48 ); 49 border-image-slice: 1; 50 border-image-repeat: repeat; 51}
投稿2020/10/22 01:18
総合スコア34075
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。