質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

2回答

1859閲覧

border dashed  破線を交互に違う色にする方法を教えてください?

jmsbndwo7

総合スコア19

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

1クリップ

投稿2020/10/21 23:47

html5 css3だけでborder dashed の破線を交互に違う色にする方法を教えてください?
よろしくお願いいたします。例えは、赤破線 青破線 赤破線 青破線の順で枠を作成するとき。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/10/21 23:48

HTML及び、自身が調べたこと試したことを質問本文を編集して追記してください。
jmsbndwo7

2020/10/21 23:57

以下は試してみてできなかった例です。 <div style="border-color dashed : red green; "></div> <div style="border : 5px dashed ; color: red green; "></div> など。
m.ts10806

2020/10/21 23:57

質問本文を編集して追記してください。
m.ts10806

2020/10/21 23:58 編集

「交互に」というのがどうなったら良いのかこれだけでは分からないですしね。 図示も必要です。 単なる「color」だと文字色ですが、そのあたりは問題ないですか?
jmsbndwo7

2020/10/22 00:48

枠を作成します。ー(破線赤色)ー(破線緑色)-(破線赤色)-(破線緑色)このような順序で色違いの破線を設定することができません。上下左右のそれそれ違う色にはできるのですが。
m.ts10806

2020/10/22 00:51

質問本文を編集して追記してください。図示も必要です。
guest

回答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
dit.

総合スコア3235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dit.

2020/10/22 01:16

あ、下線じゃなくて「枠」が欲しいんですね。 希望通りではなさそうなので後で修正します。
hatena19

2020/10/22 04:20

こちらの方法なら、疑似要素でなくても、要素のbackground-imageに直接設定してもよさそうですね。
dit.

2020/10/22 04:26

hatena19さんの指摘で気づきました(参考サイトに引っ張られすぎました)が、要素そのものに指定して良さそうですね。 ご指摘ありがとうございました。 ```css .border-test { background-image: linear-gradient(to right, #f00, #f00 3px, transparent 3px, transparent 8px, #00f 8px, #00f 11px, transparent 11px, transparent 16px), linear-gradient(to right, #f00, #f00 3px, transparent 3px, transparent 8px, #00f 8px, #00f 11px, transparent 11px, transparent 16px), linear-gradient(to bottom, #f00, #f00 3px, transparent 3px, transparent 8px, #00f 8px, #00f 11px, transparent 11px, transparent 16px), linear-gradient(to bottom, #f00, #f00 3px, transparent 3px, transparent 8px, #00f 8px, #00f 11px, transparent 11px, transparent 16px); background-size: 16px 1px, 16px 1px, 1px 16px, 1px 16px; background-position: left top, left bottom, left top, right top; background-repeat: repeat-x, repeat-x, repeat-y, repeat-y; } ```
hatena19

2020/10/22 04:34

私のがベストアンサーになっちゃいましたが、私の回答よりこちらの方がシンプルでいいですね。 高評価いれときます。
guest

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}

CodePenサンプル

投稿2020/10/22 01:18

hatena19

総合スコア34075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jmsbndwo7

2020/10/22 04:01

参考になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問