2013-02-11 11 views
74

Ich brauche eine horizontale Linie nach einiger Block zu ziehen, und ich habe drei Möglichkeiten, es zu tun:horizontale Linie und richtige Weg, es in html-Code, CSS

1) Definieren Sie eine Klasse h_line und CSS-Eigenschaften hinzufügen es, wie

#css 
.hline { width:100%; height:1px; background: #fff } 

#html 
<div class="block_1">Lorem</div> <div class="h_line"></div> 

2) verwenden hr tag

#css 
hr { width:100%; height:1px; background: #fff } 

#html 
<div class="block_1">Lorem</div> <hr /> 

3) verwenden, es wie ein after Pseudo

#css 
.hline:after { width:100%; height:1px; background: #fff; content:"" } 

#html 
<div class="block_1 h_line">Lorem</div> 

Welcher Weg ist am praktischsten?

+1

Ich würde denken, das ''


ist die semantische. Ich meine, ist es nicht das, wofür es gedacht ist? – j08691

+2

Warum nicht 'border-bottom' verwenden? – jsweazy

+2

In HTML5 stellt das HTML-Element


einen thematischen Bruch zwischen Elementen auf Absatzebene dar (z. B. eine Szenenänderung in einer Story oder eine thematische Verschiebung mit einem Abschnitt). –

Antwort

67

hr { 
 
    display: block; 
 
    height: 1px; 
 
    border: 0; 
 
    border-top: 1px solid #ccc; 
 
    margin: 1em 0; 
 
    padding: 0; 
 
}
<div>Hello</div> 
 
<hr/> 
 
<div>World</div>

Hier bevorzugen, wie html5boilerplate tut es:

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

Mit dem Tag


natürlich. – moettinger

+2

** Hinweis: ** Verwenden Sie 'margin: 1em auto', wenn Sie immer in der Mitte der Seite sein möchten. –

+1

@JacquesMarais, nicht sicher, dass dies notwendig ist, da es ein Blockelement ohne definierte Breite ist, so dass es sowieso die Breite des gesamten Containers überspannt. – moettinger

59

Ich würde für semantische Markup gehen, verwenden Sie eine <hr/>.

Wenn es sich nicht nur um eine Grenze handelt, können Sie eine Kombination aus Füllung, Rahmen und Rand verwenden, um die gewünschte Grenze zu erhalten.

+4

Dies funktioniert nicht in HTML5 –

+5

'


' ist gültig HTML5. Es verwendete eine horizontale Regel, aber wird jetzt in semantischen Begriffen als thematischer Bruch zwischen Inhalt definiert. Die meisten Browser zeigen es weiterhin als horizontale Linie an, sofern nicht anders angegeben. Quelle: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr – AJMaxwell

+0

Titel sagt horizontale Linie und


ist, dass ich so oben. Titel sollte vielleicht gestylt horizontale Zeile gelesen haben. –

2

Wenn Sie wirklich eine thematische Pause wollen, verwenden Sie unbedingt die <hr>-Tag.


Wenn Sie nur eine Design-Linie möchten, können Sie so etwas wie die CSS-Klasse

.hline-bottom { 
    padding-bottom: 10px; 
    border-bottom: 2px solid #000; /* whichever color you prefer */ 
} 

und verwenden Sie es wie

<div class="block_1 hline-bottom">Cheese</div> 
0

Meine einfache Lösung ist es, Stil hr mit CSS verwenden könnte null & unteren Ränder, Null Grenze, 1 Pixel Höhe und kontrastierende Hintergrundfarbe zu haben. Diese kann durch Einstellung der Stil direkt oder durch die Definition einer Klasse durchgeführt werden, zum Beispiel wie:

.thin_hr { 
margin-top:0; 
margin-bottom:0; 
border:0; 
height:1px; 
background-color:black; 
} 
0

es ist, hängt von Anforderung, aber viele Entwickler Vorschläge ist der Code als einfach wie möglich zu machen. also, gehen Sie mit einfachen "hr" Tag und CSS-Code dafür.

+1

Dies liefert keine Antwort auf die Frage. Sobald Sie genug [Reputation] (https://stackoverflow.com/help/whats-reputation) haben, können Sie [jeden Beitrag kommentieren] (https://stackoverflow.com/help/privileges/comment); Stattdessen [geben Sie Antworten, die keine Klärung durch den Fragesteller erfordern] (https://meta.stackexchange.com/questions/214173/why-doe-i-need-50-reputation-to-comment-what-can- i-do-stattdessen). - [Aus Bewertung] (/ review/low-quality-posts/17232637) – bish

0

hr { 
 
    display: block; 
 
    height: 1px; 
 
    border: 0; 
 
    border-top: 1px solid #ccc; 
 
    margin: 1em 0; 
 
    padding: 0; 
 
}
<div>Hello</div> 
 
<hr/> 
 
<div>World</div>
betonte Text

+0

Bitte fügen Sie einen Kommentar hinzu, der Ihre Antwort erklärt. – Barthy

Verwandte Themen