Cara membuat garis vertikal dalam HTML


336

Bagaimana Anda membuat garis vertikal menggunakan HTML?


39
Tidak bisakah W3 menjadi lebih pintar dan menambahkan spec untuk<vr>
OverCoder

Jawaban:


546

Letakkan <div>sekitar markup di mana Anda ingin garis muncul berikutnya, dan gunakan CSS untuk gaya itu:

.verticalLine {
  border-left: thick solid #ff0000;
}
<div class="verticalLine">
  some other content
</div>


3
Menggabungkan gaya dengan konten bukan hal yang tabu bagi banyak orang. <div style = "border-left: thin solid # 0000ff"> Saya tidak bisa mengatakan apa-apa dan saya mengatakannya </div>
ctpenrose

15
@ctpenrose Memang ini tidak tabu tetapi memisahkannya berguna karena Anda dapat dengan mudah menyesuaikan di satu tempat jika diperlukan. Menempatkannya dalam file CSS terpisah lebih baik untuk kinerja karena dapat di-cache oleh browser dan Anda akhirnya mengirimkan lebih sedikit byte melalui kabel setiap kali Anda meminta HTML yang diberikan.
Kris van der Mast

235

Anda dapat menggunakan tag aturan horizontal untuk membuat garis vertikal.

<hr width="1" size="500">

Dengan menggunakan lebar minimal dan ukuran besar, aturan horizontal menjadi vertikal.


7
Bravo, tuan. Itu trik yang keren. Masih perlu mengaturnya agar display:inline-blocktidak duduk dengan baik di sebelah elemen inline lainnya.
Alex W

2
Saya pikir ini tidak berfungsi di Firefox. Antrean ada di sana, tetapi sepertinya tidak terlihat ...
Edd

2
Terima kasih untuk kode ini. Berikut adalah contoh kerja jsfiddle dari jsfiddle.net/ccatto/c8RQc
Catto

Giulio karena sebenarnya tidak membagi layar menjadi dua kolom. sekali lagi Anda perlu menggunakan beberapa staf css untuk hasil yang diinginkan, seperti halnya div.
Ismail Sahin

Saya suka ini lebih baik karena menghindari keanehan memiliki div tersembunyi dengan hanya satu sisi yang memiliki batas yang terlihat. Memang, ini bukan cara Anda biasanya menggunakan jam, tetapi masih lebih masuk akal bagi saya.
levininja

71

Anda bisa menggunakan yang kosong <div> yang ditata persis seperti yang Anda inginkan garis muncul:

HTML:

<div class="vertical-line"></div>

Dengan tinggi persis (gaya in-line):

  div.vertical-line{
      width: 1px; /* Line width */
      background-color: black; /* Line color */
      height: 100%; /* Override in-line if you want specific height. */
      float: left; /* Causes the line to float to left of content. 
        You can instead use position:absolute or display:inline-block
        if this fits better with your design */
    }
<div class="vertical-line" style="height: 45px;"></div>

Gaya perbatasan jika Anda ingin tampilan 3D:

    div.vertical-line{
      width: 0px; /* Use only border style */
      height: 100%;
      float: left; 
      border: 1px inset; /* This is default border style for <hr> tag */
    }
   <div class="vertical-line" style="height: 45px;"></div>

Tentu saja Anda juga dapat melakukan percobaan dengan kombinasi lanjutan:

  div.vertical-line{
      width: 1px;
      background-color: silver;
      height: 100%;
      float: left;
      border: 2px ridge silver ;
      border-radius: 2px;
    }
 <div class="vertical-line" style="height: 45px;"></div>


1
+1 solusi ini bagus karena mudah disesuaikan untuk kebutuhan yang berbeda
Fanckush

31

Anda juga dapat membuat garis vertikal menggunakan garis horizontal HTML <hr />

html, body{height: 100%;}

hr.vertical {
  width: 0px;
  height: 100%;
  /* or height in PX */
}
<hr class="vertical" />


1
Trik hebat untuk mendapatkan garis yang ditata sama dengan standar <hr>. Mungkin juga perlu styling ekstra untuk mengapung di sisi konten (misalnya: float:left;)
kagum

Ini "vertikal" aturan masih memisahkan (teks) elemen vertikal sebagai aturan horisontal normal.
Qwerty

20

Tidak ada ekuivalen vertikal dengan <hr>elemen. Namun, satu pendekatan yang mungkin ingin Anda coba adalah menggunakan perbatasan sederhana ke kiri atau kanan apa pun yang Anda pisahkan:

#your_col {
  border-left: 1px solid black;
}
<div id="your_col">
  Your content here
</div>


17

Elemen khusus HTML5 (atau CSS murni)

masukkan deskripsi gambar di sini

1. javascript

Daftarkan elemen Anda.

var vr = document.registerElement('v-r'); // vertical rule please, yes!

*Itu - wajib di semua elemen khusus.

2. css

v-r {
    height: 100%;
    width: 1px;
    border-left: 1px solid gray;
    /*display: inline-block;*/    
    /*margin: 0 auto;*/
}

* Anda mungkin perlu sedikit bermain-main display:inline-block|inlinekarenainline tidak akan berkembang hingga mengandung tinggi elemen. Gunakan margin untuk menempatkan garis di tengah wadah.

3. instantiate

js: document.body.appendChild(new vr());
or
HTML: <v-r></v-r>

* Sayangnya Anda tidak dapat membuat tag kustom sendiri.

pemakaian

 <h1>THIS<v-r></v-r>WORKS</h1>

masukkan deskripsi gambar di sini

contoh: http://html5.qry.me/vertical-rule


Tidak ingin dipusingkan dengan javascript?

Cukup terapkan kelas CSS ini ke elemen yang Anda tuju.

css

.vr {
    height: 100%;
    width: 1px;
    border-left: 1px solid gray;
    /*display: inline-block;*/    
    /*margin: 0 auto;*/
}

* Lihat catatan di atas.


Sedih dengan keterbatasan, tetapi ini terlihat sangat, sangat berguna di beberapa tempat lain.
Smar

Itu tidak mengisi semua ukuran div bagaimana cara memperbaikinya?
Otávio Barreto

1
@ OtávioBarreto Anda mungkin perlu mengutak-atik displayproperti yang dikomentari . Atur ke salah satu inlineatau inline-block. Lihat catatan di atas dan contoh url.
Qwerty

9

Satu opsi lain adalah menggunakan gambar 1-pixel, dan mengatur ketinggian - opsi ini akan memungkinkan Anda untuk melayang ke tempat yang Anda inginkan.

Bukan solusi yang paling elegan sekalipun.


1
tidak ada yang salah dengan metode ini, bahkan mereka menggunakannya di situs jquery
stephenmurdoch

6

Anda dapat menggambar garis vertikal dengan hanya menggunakan tinggi / lebar dengan elemen html apa pun.

#verticle-line {
  width: 1px;
  min-height: 400px;
  background: red;
}
<div id="verticle-line"></div>


5

Tidak ada tag untuk membuat garis vertikal dalam HTML.

  1. Metode: Anda memuat gambar garis. Kemudian Anda mengatur gayanya"height: 100px ; width: 2px"

  2. Metode: Anda dapat menggunakan <td>tag<td style="border-left: 1px solid red; padding: 5px;"> X </td>



4

Saya menggunakan kombinasi kode "jam" yang disarankan, dan inilah yang tampak seperti kode saya:

<hr style="width:0.5px; height:500px; position: absolute; left: 315px;"/>

Saya hanya mengubah nilai nilai piksel "kiri" ke posisi itu. (Saya menggunakan garis vertikal untuk merangkai konten di halaman web saya, dan kemudian saya menghapusnya.)


4

Untuk membuat garis vertikal yang berpusat di dalam div, saya pikir Anda dapat menggunakan kode ini. 'Wadah' mungkin lebarnya 100%, kurasa.

div.container {
  width: 400px;
}

div.vertical-line {
  border-left: 1px solid #808080;
  height: 350px;
  margin-left: auto;
  margin-right: auto;
  width: 1px;
}
<div class="container">
  <div class="vertical-line">&nbsp;</div>
</div>


Jawaban Terbaik, semua yang lain Terjebak di kiri atau kanan. Terima kasih!
Abdelhadi Lahlou


3

Jika tujuan Anda adalah meletakkan garis vertikal dalam wadah untuk memisahkan elemen anak berdampingan (elemen kolom), Anda dapat mempertimbangkan untuk menata wadah seperti ini:

.container > *:not(:first-child) {
  border-left: solid gray 2px;
}

Ini menambahkan batas kiri ke semua elemen anak mulai dari anak ke-2. Dengan kata lain, Anda mendapatkan batas vertikal antara anak-anak yang berdekatan.

  • >adalah pemilih anak. Ini cocok dengan anak manapun dari elemen yang ditentukan di sebelah kiri.
  • *adalah pemilih universal. Ini cocok dengan elemen jenis apa pun.
  • :not(:first-child) berarti itu bukan anak pertama dari orang tuanya.

Dukungan browser: > *: anak pertama dan : tidak ()

Saya pikir ini lebih baik daripada .child-except-first {border-left: ...}aturan sederhana , karena lebih masuk akal jika garis vertikal berasal dari aturan wadah, bukan aturan elemen anak yang berbeda.

Apakah ini lebih baik daripada menggunakan elemen aturan vertikal sementara (dengan menggunakan aturan horizontal, dll.) Akan tergantung pada use case Anda, tetapi ini setidaknya merupakan alternatif.


3

Satu pendekatan lagi dimungkinkan: Menggunakan SVG .

misalnya:

<svg height="210" width="500">
    <line x1="0" y1="0" x2="0" y2="100" style="stroke:rgb(255,0,0);stroke-width:2" />
      Sorry, your browser does not support inline SVG.
</svg>

Pro:

  • Anda dapat memiliki garis dengan panjang dan orientasi berapa pun.
  • Anda dapat menentukan lebar, warna dengan mudah

Cons:

  • SVG sekarang didukung di sebagian besar browser modern. Tetapi beberapa browser lama (seperti IE 8 dan yang lebih lama) tidak mendukungnya.

3

Garis vertikal langsung ke div

    <div style="width:50%">
        <div style="border-right:1px solid;">
            <ul>
                <li>
                    Empty div didn't shows line
                </li>
                <li>
                    Vertical line length depends on the content in the div
                </li>
                <li>
                    Here I am using inline style. You can replace it by external style or internal style.
                </li>
            </ul>
        </div>
    </div>
  

Garis vertikal kiri ke div

    <div style="width:50%">
        <div style="border-left:1px solid;">
            <ul>
                <li>
                    Empty div didn't shows line
                </li>
                <li>
                    Vertical line length depends on the content in the div
                </li>
                <li>
                    Here I am using inline style. You can replace it by external style or internal style.
                </li>
            </ul>
        </div>
    </div>
  


2

Untuk menambahkan garis vertikal, Anda perlu menata jam.

Sekarang ketika Anda membuat garis vertikal itu akan muncul di tengah halaman:

<hr style="width:0.5px;height:500px;"/>

Sekarang untuk meletakkannya di tempat yang Anda inginkan, Anda dapat menggunakan kode ini:

<hr style="width:0.5px;height:500px;margin-left:-500px;margin-right:500px;"/>

Ini akan memposisikannya ke kiri, Anda dapat membalikkannya ke posisi itu ke kanan.


2

Ada <hr>tag untuk garis horizontal. Dapat digunakan dengan CSS untuk membuat garis horizontal juga:

.divider{
    margin-left: 5px;
    margin-right: 5px;
    height: 100px;
    width: 1px;
    background-color: red;
}
<hr class="divider">

Properti width menentukan ketebalan garis. Properti height menentukan panjang garis. Properti warna latar belakang menentukan warna garis.


1

Di elemen Sebelumnya yang Anda inginkan untuk menerapkan baris vertikal, Anda dapat mengatur ...

border-right-width: thin;
border-right-color: black;
border-right-style: solid;


0

Untuk gaya sebaris saya menggunakan kode ini:

<div style="border-left:1px black solid; position:absolute; left:50%; height:300px;" />

dan yang memposisikannya langsung di tengah.


0

Saya membutuhkan garis vertikal sebaris, jadi saya menipu sebuah tombol untuk menjadi garis.

<button type="button" class="v_line">l</button>

.v_line {
         width: 0px;
         padding: .5em .5px;
         background-color: black;
         margin: 0px; 4px;
        }

0
<div style="width:1px;background-color:#C0C0C0;"></div>

Ini bekerja baik untuk saya


-1

Untuk membuat garis vertikal ke tengah digunakan tengah:

position: absolute; 
left: 50%;

dia bertanya bagaimana membuat garis vertikal, bukan bagaimana membuat garis vertikal ke pusat di tengah
Bloodhound
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.