hr要素の色を変更する


778

hrCSSを使用してタグの色を変更したい。以下で試したコードは機能していないようです:

hr {
    color: #123455;
}

1
参考までに、私は別の色で何をしたかを試しましたが、Firefox 5ベータでは機能しますが、IE 9では動作し

6
@Keoki Zeeは私(Chrome)で働いていません。
Marty

1
@Marty background-colorはChromeで動作しますが、色ではありません...奇妙です...

2
chromeが動作しないbackground-colorも動作しない
koool

2
さて、誰かがテストしたい場合に備えて、これが私がこれまで行ってきたフィドルですjsfiddle.net/TGtSd/9 ...

回答:


1125

タグによって生成される線の色を変更する場合border-colorcolor、の代わりに使用する必要があると思います<hr>

コメントで指摘されていますが、線のサイズを変更しても、境界線はスタイルで指定した幅のままであり、線はデフォルトの色で塗りつぶされます(これは、ほとんどの場合、望ましい効果ではありません)時間)。したがって、この場合はbackground-color(@Ibuが彼の回答で示唆したように)指定する必要もあるようです。

デフォルトのスタイルシートのHTML 5ボイラープレートプロジェクトは、次のルールを指定します。

hr { display: block; height: 1px;
    border: 0; border-top: 1px solid #ccc;
    margin: 1em 0; padding: 0; }

SitePointによって最近発行された「12 Little-Known CSS Facts」というタイトルの記事では、を指定した場合にその親に<hr>設定できると述べています。border-colorcolorhr { border-color: inherit }


6
border-colorの問題は、hrを大きくすると、境界線を着色するだけです。jsfiddle.net/ TGtSd / 9 ...

@Antonそれは私がhrのサイズについて言及していたものではありません...高さを増やして、border-colorだけを使用すると、色付きの境界線を持つ長方形が得られますが、内部はそうではありません。色付き...

なぜ国境に悩むのか?なぜ背景色を付けてそれで終わらせないのですか?編集:nvm、ブラウザの互換性に関する答えが見つかりませんでした。
弁護士、

119
  • border-colorChromeSafariで動作します。
  • background-color FirefoxとOperaで動作します。
  • colorIE7 +で動作します。

10
私たちのサイトがすべてのブラウザで表示されるようにしたい場合、それらすべてを使用する必要がありますか?
MEM 2013

4
border-color Chrome では動作しません。白い背景に白に設定してみてください。これらの2つは機能します:1) color:white; border-style:solid;または2)の いずれかborder-color:white; border-style:solid;
Pacerier、2015年

4
@Pacerierはいそうです。スタイルおよび/または幅を指定する必要があるかもしれません
GOTO

情報re。IE(少なくとも)は正しくありません。'border-color'はIEで正常に動作します。'色'はしません(IE11)
taiji123

88

これは便利だと思います。これは単純なCSSセレクターでした。

hr { background-color: red; height: 1px; border: 0; }

2
これは間違いなく私にとってChromeデスクトップでうまくいきました:<style> hr {background-color:red; 高さ:1px; ボーダー:0; } </ style> <hr>
Michael d

ChromeとFirefoxの両方で動作します
Robert C



12

色付きのボーダートップだけで、ラインを別の色にできます。

hr {
    border-top: 1px solid #ccc;
}

10
hr {
  height:0; 
  border:0; 
  border-top:1px solid #083972; 
}

これにより、横罫線の色が1px維持され、色も変更されます


ここでベストアンサー。高さを0pxに設定してボーダーを追加しても、hrは2 pxの幅になりません。グレートコール!
Bob Roberts 14

9

これが最も効果的なアプローチだと思います。

<hr style="border-top: 1px solid #ccc; background: transparent;">

または、すべてのhr要素でそれを実行したい場合は、CSSで次のように記述します。

hr {
    background-color: transparent;
    border-top: 1px solid #ccc;
}


5
hr
{
  background-color: #123455;
}

背景は変更しようとするものです

境界線の色を操作することもできます。これにはクロスブラウザの問題があると思います。別のブラウザでテストする必要があります


2
私はFirefox 5ベータ版、IE 9、Chrome、Opera、Safariでそれを試しました...あなたは素晴らしいです、それらはすべて動作します;)

1
@kool、どの部分が機能しないのですか?背景色?ボーダーカラー?私はborder-color:blueをテストしました。そしてそれはクロムで働いた
イブ

[border-color]はChromeで動作します。【背景色】はありません。十分な議員がいたら、反対票を投じます。
samthebrand

5

cssクラスを使用する場合は、すべての「hr」タグによって取得されますが、特定の「hr」が必要な場合は、以下のコード、つまりインラインcssを使用します

<hr style="color:#99CC99" />

クロームで動作しない場合は、以下のコードを試してください:

<hr color="red" />

5

ここですべての回答を読み、説明されている複雑さを確認した後、私はHRを試すために小さな転用を開始しました。そして、結論は、あなたが書いたモンキーパッチされたCSSのほとんどを捨て、この小さな入門書を読んで、次の2行の純粋なCSSを使用するだけでよいということです。

hr {
  border-style: solid;
  border-color: cornflowerblue; /* or whatever */
}

つまりALLあなたのスタイルにあなたのHRを必要としています。

  • クロスブラウザ、クロスデバイス、クロスOS、クロス英語チャネル、クロスエイジで動作します。
  • いいえ、「これでうまくいくと思います...」「Safari / IEを覚えておく必要があります...」など
  • 余分なCSS -いいえheightwidthbackground-colorcolor、などの関与。

防弾カラフルなHR。それ単純なTMです。


おまけ:HRの高さを上げるにはH、をに設定border-widthH/2ます。


私はそれぞれに賭けをしました: `` `hr {border-top:1px solid purple; ボーダーカラー:パープル; 背景色:紫; 色:紫; } ~~~
デビッドジョーンズ

Firefoxでは機能しませんが、機能background-colorします。
キャラム

4

一部のブラウザーはcolor属性を使用し、一部のブラウザーは属性を使用しbackground-colorます。安全であるために:

hr{
    color: #color;
    background-color: #color;
}

4

2015年5月にIE、Firefox、Chromeでテストしていますが、これは現在のバージョンで最適に動作します。HRを中央に配置し、70%の幅にします。

hr.light { 
    width:70%; 
    margin:0 auto; 
    border:0px none white; 
    border-top:1px solid lightgrey; 
}
<hr class="light" />


これはまさに私が探していたものです。私の間違いは、CSS定義でhrとクラスの間にスペースを追加していたことでした(hr .light {})
rochasdv

4

border-widthを0に設定する必要があります。FirefoxとChromeでうまく機能します。

hr {
  clear: both;
  color: red;
  background-color: red;
  height: 1px;
  border-width: 0;
}
<hr />
This is a test
<hr />


4

シンプルで私のお気に入りです。

<hr style="background-color: #dd3333" />

4

あなたはのようなブートストラップbgクラスを追加することができます

<hr class="bg-light" />

これは私にとって完璧な答えでしたが、境界を調整することで過去にやったことがあります。ところで、ブートストラップ4は、このようにそれを行います.bg-light { background-color: #f8f9fa !important; }
nicorellius

2

私はコメントする評判がないので、ここでいくつかのアイデアを挙げます。

css変数の高さが必要な場合は、すべての境界線を外して背景色を指定します。

    hr{
        height:2px;
        border:0px;
        background:green;
        margin:0px;/*sometimes useful*/
    }
    /*Doesn't work in ie7 and below and in Quirks Mode*/

機能することがわかっているスタイルだけが必要な場合(例:ほとんどの電子メールクライアントの:: before要素のボーダーを置き換える、または

    hr{
        height:0px;
        border:0px;
        border-top:2px solid blue;
        margin:0px;/*useful sometimes*/
    }

どちらの方法でも、幅を設定すると、常にそのサイズになります。

display:block;これを設定する必要はありません。

完全に安全にするために、両方を混在させることができます。これは、一部のブラウザが以下と混同される可能性があるためheight:0px;です。

    hr{
        height:1px;
        border:0px;
        background:blue;
        border-top:1px solid blue;
        margin:0px;/*useful sometimes*/
    }

この方法を使用すると、高さが少なくとも2pxになることが保証されます。

もっとラインですが、安全は安全です。

これは、ほぼすべてと互換性を保つために使用する方法です。

注意:GmailはインラインCSSのみを検出し、一部のメールクライアントは背景や境界線をサポートしない場合があります。1つが失敗した場合でも、1pxの行があります。何もないよりマシ。

最悪の場合は、を追加してみてくださいcolor:blue;

最悪のケースでは、<font color="blue"></font>タグを使用して、<hr/>その中に貴重なタグを入れることができます。<font></font>タグの色を継承します。

この方法では、WILL、このようにやりたいです:<hr width="50" align="left"/>

例:

    <span>
        awhieugfrafgtgtfhjjygfjyjg
        <font color="#42B3E5"><hr width="50" align="left"/></font>
    </span>
    <!--Doesn't work in ie7 and below and in Quirks Mode-->

ここにあなたがチェックするためのリンクがあります:http : //jsfiddle.net/sna2D/


0

CSSを使用して、別の色で線を作成できます。例は次のようになります。

border-left: 1px solid rgb(216, 216, 216);
border-right: medium none;
border-width: medium medium medium 2px;
border-style: none none none solid;
border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color rgb(216, 216, 216);

そのコードは灰色の縦線を表示します。


0

まあ、私はHTML、CSS、Javaの初心者ですが、すべてのブラウザーで機能する方法を試しました。一部のブラウザでは動作しない CSSの代わりにJSを使用しました。

まず最初に、id="myHR"HR要素を指定し、それをJavaスクリプトで使用しました。
これがコードです。

x = document.getElementById("myHR");
y = x.style.width = "600px";
y = x.style.color = "white";
y = x.style.height = "2px";
y = x.style.border = "none";
y = x.style.backgroundColor = "lightgrey";

0
  1. コードは古いIEで動作します
  2. 多くの色を試しました

    <hr color="black">
    <hr color="blue">

0

フォントの色を使用して水平方向の罫線を変更すると、より柔軟で使いやすくなります。

このcolorプロパティはデフォルトでは継承されないため、色の継承を可能にするには、次のものをhrに追加する必要があります。

/* allow hr to inherit color */
hr { border: 1px solid;}

/* reusable colour modifier */
.fc_-alpha { color: crimson;}
normal hr:

<hr>

hr with <span class="fc_-alpha">colour modifier</span>:

<hr class="fc_-alpha">



0

あなたは<hr noshade>タグを付けてCSSファイルに行き、追加することができます:

hr {
    border-top:0;
    color: #123455;
}
<hr noshade />
This s a test
<hr noshade />


0

一般的なルールとして、他の場合と同じように、CSSで水平線の色を設定することはできません。まず、Internet Explorerでは、CSSの色を次のように読み取る必要があります。

「色:#123455」

しかし、OperaとMozillaでは、CSSの色を次のように読み取る必要があります。

「背景色:#123455」

したがって、CSSに両方のオプションを追加する必要があります。

次に、水平線にいくつかの寸法を指定する必要があります。そうしないと、デフォルトでブラウザによって設定された標準の高さ、幅、色に設定されます。青い水平線を取得するためのCSSのサンプルコードを次に示します。

hr {
border: 0;
width: 100%;
color: #123455;
background-color: #123455;
height: 5px;
}

または、次のように、水平線を挿入するときに、HTMLページにスタイルを直接追加することもできます。

<hr style="background:#123455" />

お役に立てれば。


0

私はそれぞれの方法で賭けをしました:

  hr {
    border-top: 1px solid purple;
    border-color: purple;
    background-color: purple;
    color: purple;
  }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.