İk elemanın rengini değiştirme


778

hrCSS kullanarak etiketimin rengini değiştirmek istiyorum . Aşağıda denediğim kod işe yaramıyor:

hr {
    color: #123455;
}

1
Sadece FYI, farklı bir renkle yaptıklarını yapmayı denedim ve Firefox 5 Beta'da çalışıyor, ancak IE 9'da değil, jsfiddle.net/TGtSd

6
@Keoki Zee Benim için çalışmıyor (Chrome).
Marty

1
@Marty arka plan rengi Chrome'da çalışıyor, ancak haklı değilsiniz ... tuhaf ...

2
krom çalışmıyor arka plan rengi de benim için çalışmıyor
koool

2
Tamam, herkes test etmek isterse, işte şimdiye kadar gittiğim bir keman, jsfiddle.net/TGtSd/9 ...

Yanıtlar:


1125

Eğer niyetiniz etiket tarafından üretilen çizginin rengini değiştirmekse, border-colorbunun yerine kullanmanız gerektiğini düşünüyorum .color<hr>

Bununla birlikte, yorumlarda, çizginizin boyutunu değiştirirseniz, kenarlığın stillerde belirttiğiniz kadar geniş olacağı ve çizginin varsayılan renkle (bu, süresi). Yani bu durumda da belirtmeniz gerekecek gibi görünüyor background-color(cevabında @Ibu'nun önerdiği gibi).

Varsayılan stil sayfasındaki HTML 5 Boilerplate projesi aşağıdaki kuralı belirtir :

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

Yakın zamanda SitePoint tarafından yayınlanan “12 Az Bilinen CSS Gerçekleri” başlıklı makalede , belirttiğiniz takdirde üst öğeye <hr>ayarlanabileceğinden bahsedilmektedir .border-colorcolorhr { border-color: inherit }


6
Kenarlık rengi ile ilgili sorun, eğer saati büyütürseniz , sadece kenarlığı renklendirir, jsfiddle.net/TGtSd/9 ...

@Anton, saatin boyutu hakkında bahsettiğim şey değildi ... eğer yüksekliği arttırırsanız ve sadece kenarlık rengini kullanırsanız, renkli bir kenarlığa sahip bir dikdörtgen alırsınız, ancak içeride olmayacak renkli ...

Neden sınırla hiç uğraşmıyorsunuz? Neden sadece bir arka plan rengi vermiyor ve onunla yapılıyor? Düzenleme: nvm, tarayıcı uyumluluğu ile ilgili cevabı görmedim.
Avukat

119
  • border-colorChrome ve Safari'de çalışır .
  • background-color Firefox ve Opera'da çalışıyor.
  • colorIE7 + 'da çalışır .

10
Sitemizin tüm tarayıcılarda görünmesini istiyorsak hepsini kullanmalı mıyız?
MEM

4
border-color Chrome'da çalışmıyor . Beyaz zemin üzerine beyaza ayarlamayı deneyin. Bu ikisi çalışır: 1) color:white; border-style:solid; veya 2) border-color:white; border-style:solid; .
Pacerier

4
@ Pacer evet evet öyle. Bir stil ve / veya genişlik belirtmek gerekebilir
GôTô

bilgi yeniden. IE (en azından) yanlış. 'border-color' IE'de iyi çalışıyor; 'color' (IE11)
taiji123

88

Bunun yararlı olabileceğini düşünüyorum. bu basit bir CSS seçiciydi.

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

2
Bu kesinlikle chrome masaüstünde çalıştı: <style> hr {background-color: red; yükseklik: 1 piksel; sınır: 0; } </style> <hr>
Michael d

Hem krom hem de firefox'ta benim için çalışıyor
Robert C

46
hr {
    height: 1px;
    color: #123455;
    background-color: #123455;
    border: none;
}

Bu şekilde yapılması gerektiğinde yüksekliği değiştirmenizi sağlar. İyi şanslar. Kaynak: İK'yi CSS ile Stilize Etme



12

Çizgiyi farklı renkte yapmak için sadece renkli kenarlık yeterlidir.

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

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

Bu, Yatay Kuralı 1 piksel kalınlığında tutarken rengini de değiştirir


En iyi cevap burada. Yüksekliğin 0 piksele ayarlanması ve kenarlık penceresinin eklenmesi, 2 piksel genişliğini artırmaz. Büyük çağrı !!
Bob Roberts

9

Bunun en etkili yaklaşım olduğuna inanıyorum:

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

Veya tüm saat öğelerinde yapmayı tercih ederseniz bunu CSS'nize yazın:

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


5
hr
{
  background-color: #123455;
}

arka plan değiştirmeye çalışmanız gereken arka plan

Kenarlıkların rengiyle de çalışabilirsiniz. Bu konuda crossbrowser sorunları olduğunu düşünüyorum emin değilim. farklı tarayıcılarda test etmelisiniz


2
); Sana ... Firefox 5 Beta, IE 9, Chrome, Opera ve Safari'de olman iyi, hepsi iş denedim

1
@kool, hangi kısım çalışmıyor? arka plan rengi? veya kenarlık rengi? Ben sadece kenarlık rengini test ettim: mavi; ve
kromda

[border-color] Chrome'da çalışır. [arka plan rengi] bunu yapmaz. Yeterince temsilci olsaydım oy verirdim.
samthebrand

5

u css sınıfını kullanırsanız tüm 'hr' etiketleri tarafından alınır, ancak belirli bir 'hr' için u istiyorsanız aşağıdaki kodu kullanın, yani, satır içi css

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

Chrome'da çalışmıyorsa aşağıdaki kodu deneyin:

<hr color="red" />

5

Buradaki tüm cevapları okuduktan ve açıklanan karmaşıklığı gördükten sonra, İK ile deney yapmak için küçük bir sapmaya başladım. Ve sonuç, yazdığınız maymunsu CSS'nin çoğunu atabileceğiniz, bu küçük astarı okuyabileceğiniz ve sadece bu iki saf CSS satırını kullanabileceğinizdir:

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

Yani TÜM stil için HRS gerekir.

  • Çapraz tarayıcı, cihazlar arası, işletim sistemleri arası, çapraz İngilizce kanal, çapraz yaşlarda çalışır.
  • Hayır "Bunun işe yarayacağını düşünüyorum ..." , "Safari / IE'yi aklınızda tutmanız gerekiyor ..." vb.
  • hiçbir ekstra css - hayır height, width, background-color, color, vb dahil.

Sadece kurşun geçirmez renkli HR'ler. İşte bu kadar basit TM .


Bonus: İK'ya biraz yükseklik kazandırmak Hiçin border-widthas değerini ayarlayın H/2.


Her şekilde bahis oynadım: `` hr {border-top: 1px koyu mor; sınır rengi: mor; arka plan rengi: mor; Mor renk; } ~~~
David Jones

Firefox'ta background-colorçalışmıyor, çalışıyor.
karam

4

Bazı tarayıcılar colorözniteliği, bazıları ise background-colorözniteliği kullanır . Güvende olmak:

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

4

IE, Firefox ve Chrome Mayıs 2015'te test yapıyorum ve bu en iyi mevcut sürümlerle çalışıyor. İK'yı merkezler ve% 70 genişliğinde yapar:

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


tam da aradığım şey bu. Benim hatam css tanımında hr ve sınıf arasında bir boşluk eklemek oldu (hr .light {})
rochasdv

4

Kenarlık genişliğini 0 olarak ayarlamanız gerekir; Firefox ve Chrome'da iyi çalışır.

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


4

Çok basit ve benim favorim.

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

4

Sen gibi bootstrap bg sınıfı ekleyebilirsiniz

<hr class="bg-light" />

Geçmişte sınırını ayarlayarak yapmama rağmen, bu benim için mükemmel bir cevap oldu. BTW, Bootstrap 4 bunu şu şekilde yapar:.bg-light { background-color: #f8f9fa !important; }
nicorellius

2

Yorum yapmak için bir üne sahip olmadığım için, burada birkaç fikir vereceğim.

css değişken yüksekliği istiyorsanız, tüm kenarlıkları çıkarın ve bir arka plan rengi verin.

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

basitçe işe yarayacağını bildiğiniz bir stil istiyorsanız (örnek: çoğu e-posta istemcisi için :: before öğesindeki kenarlığı değiştirmek veya

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

Her iki yönde de, bir genişlik ayarlarsanız, her zaman boyutuna sahip olacaktır.

Bunun için ayarlamaya gerek yok display:block;.

Tamamen güvenli olmak için, her ikisini de karıştırabilirsiniz, çünkü bazı tarayıcılar aşağıdakilerle karıştırılabilir height:0px;:

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

Bu yöntemle en az 2 piksel yüksekliğe sahip olacağından emin olabilirsiniz.

Bu bir çizgi daha, ama güvenlik emniyettir.

Hemen hemen her şeyle uyumlu olmak için kullanmanız gereken yöntem budur.

Unutmayın: Gmail yalnızca satır içi css algılar ve bazı e-posta istemcileri arka planları veya sınırları desteklemeyebilir. Biri başarısız olursa, yine de 1 piksellik bir satırınız olacaktır. Hiç yoktan iyidir.

En kötü durumlarda, eklemeyi deneyebilirsiniz color:blue;.

En kötü durumlarda, bir <font color="blue"></font>etiket kullanmayı deneyebilir ve değerli <hr/>etiketinizi içine koyabilirsiniz . <font></font>Etiket rengini devralır .

Bu yöntemle, sen OLACAK böyle yapmak istiyorum: <hr width="50" align="left"/>.

Misal:

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

Kontrol etmeniz için bir link: http://jsfiddle.net/sna2D/


0

Farklı renkte bir çizgi yapmak için CSS kullanabilirsiniz, örnek şöyle olacaktır:

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);

bu kod dikey gri çizgi görüntüleyecektir.


0

HTML, CSS ve Java'da yeniyim ama tüm tarayıcılarda benim için çalışan yolumu denedim. Bazı tarayıcılarda çalışmayan CSS yerine JS kullandım .

Öncelikle id="myHR"İK elementine verdim ve Java Script'te kullandım.
İşte Kod.

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. Kod eski IE için çalışır
  2. Birçok Renk İçin Denendi

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

0

Yatay kuralları değiştirmek için yazı tipi renklerini kullanmak onları daha esnek ve kullanımı kolay hale getirir.

colorAşağıdaki ihtiyaçlar renk devralma izin hr en eklenecek böylece mülkiyet, varsayılan olarak miras değildir:

/* 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

Bunu yapabilirsin:

hr {
  border: 1px solid red;
}
<hr />
This s a test
<hr />


0

<hr noshade>Etiketi verebilir ve css dosyanıza gidebilir ve şunları ekleyebilirsiniz:

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


0

Genel bir kural olarak, yatay bir çizginin rengini CSS ile başka bir şey gibi ayarlayamazsınız. Her şeyden önce, Internet Explorer'ın şu şekilde okumak için CSS'nizdeki renge ihtiyacı vardır:

“Renk: # 123455”

Ancak Opera ve Mozilla, şu şekilde okumak için CSS'nizdeki renge ihtiyaç duyar:

“Arka plan rengi: # 123455”

Dolayısıyla, her iki seçeneği de CSS'nize eklemeniz gerekir.

Ardından, yatay çizgiye bazı boyutlar vermeniz gerekir veya varsayılan olarak tarayıcınız tarafından ayarlanan standart yükseklik, genişlik ve renk ayarlanır. İşte mavi yatay çizgiyi elde etmek için CSS'nizin nasıl görünmesi gerektiğine dair örnek bir kod.

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

Veya stili yatay bir çizgi eklediğinizde doğrudan HTML sayfanıza ekleyebilirsiniz, örneğin:

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

Bu yardımcı olur umarım.


0

Her şekilde bahis oynadım:

  hr {
    border-top: 1px solid purple;
    border-color: purple;
    background-color: purple;
    color: purple;
  }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.