Як зробити вертикальну лінію в HTML


335

Як зробити вертикальну лінію за допомогою HTML?


39
Не може W3 бути просто розумнішим та додати специфікацію для<vr>
OverCoder

Відповіді:


545

Поставте <div>навколо розмітки, де ви хочете, щоб рядок відображався поруч, і використовуйте CSS для стилю:

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


3
Поєднання стилю із вмістом для багатьох не є табу. <div style = "border-left: thin solid # 0000ff"> Мені нічого сказати, і я говорю це </div>
ctpenrose

15
@ctpenrose Це справді не табу, але розділення їх зручно, оскільки тоді ви можете легко налаштувати в одному місці, якщо потрібно. Також розміщення його в окремому файлі CSS є кращим для продуктивності, оскільки він може кешуватися браузером, і ви в кінцевому підсумку передаєте менше байтів по дроту щоразу, коли ви запитуєте виведений HTML.
Кріс ван дер Маст

235

Можна використовувати тег горизонтальних правил для створення вертикальних ліній.

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

Використовуючи мінімальну ширину та великий розмір, горизонтальне правило стає вертикальним.


7
Браво, сер. Це класна хитрість. Все-таки потрібно встановити його, щоб в display:inline-blockіншому випадку він не сидів красиво поруч з іншими вбудованими елементами.
Алекс Ш

2
Я не думаю, що це працює у Firefox, хоча. Рядок є, але, здається, не видно ...
Едд

2
Дякуємо за цей код. Ось робочий приклад jsfiddle цього jsfiddle.net/ccatto/c8RQc
Catto

Джуліо тому, що він фактично не розділяє екран на дві колонки. знову потрібно використовувати деякий css персонал для отримання бажаного результату, як і div.
Ісмаїл Сахін

Мені це подобається більше, тому що це дозволяє уникнути дивацтв мати прихований дів, коли лише одна сторона має видиму межу. Зрозуміло, це не такий спосіб, як ви зазвичай використовуєте hr, але це все ще має сенс для мене.
levininja

71

Ви можете використовувати порожню <div>, стильовану так, як ви хочете, щоб рядок відображався:

HTML:

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

З точною висотою (переважаючий стиль в рядку):

  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>

Стилі рамки, якщо ви хочете 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>

Можна, звичайно, також експериментувати з розширеними комбінаціями:

  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 це рішення добре, оскільки воно легко налаштовується для різних потреб
Fanckush

31

Ви також можете зробити вертикальну лінію за допомогою горизонтальної лінії HTML <hr />

html, body{height: 100%;}

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


1
Чудовий трюк, щоб отримати лінійку так само, як і стандартну <hr>. Можливо , також буде потрібно додаткове моделювання з плаваючою точкою на стороні контенту (наприклад: float:left;)
благоговіння

Це "вертикальне" правило все ще відокремлює (текстові) елементи по вертикалі, як звичайне горизонтальне правило.
Qwerty

20

Немає вертикального еквівалента <hr>елементу. Однак одним із підходів, який ви можете спробувати, є використання простої межі ліворуч або праворуч від того, що ви розділяєте:

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


17

Користувацькі елементи HTML5 (або чистий CSS)

введіть тут опис зображення

1. javascript

Зареєструйте свій елемент.

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

* -Обов’язковий у всіх спеціальних елементах.

2. css

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

* Можливо, вам доведеться трохи пограбувати, display:inline-block|inlineоскільки inlineне буде розширюватися до висоти елемента, що містить. Використовуйте поле для центрування рядка в контейнері.

3. інстанція

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

* На жаль, ви не можете створити власні теги для самозакривання.

використання

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

введіть тут опис зображення

приклад: http://html5.qry.me/vertical-rule


Не хочете возитися з javascript?

Просто застосуйте цей клас CSS до призначеного вам елемента.

css

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

* Див. Примітки вище.


Сумно з приводу обмежень, але це виглядає дійсно, дуже корисно в деяких інших місцях.
Смар

Він не заповнює всі розміри div, як це виправити?
Otávio Barreto

1
@ OtávioBarreto Можливо, вам доведеться поспішати з коментованим displayвластивістю. Встановіть його inlineабо inline-block. Дивіться примітки вище та приклад URL.
Qwerty

9

Ще один варіант - використовувати зображення в 1 пікселі та встановити висоту - ця опція дозволить вам перенести його туди, де вам потрібно бути.

Але не найелегантніше рішення.


1
нічого поганого в цьому методі, інфакт вони використовують його на веб-сайті jquery
stephenmurdoch

6

Ви можете намалювати вертикальну лінію, просто використовуючи висоту / ширину з будь-яким html-елементом.

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


5

Немає жодного тегу для створення вертикальної лінії в HTML.

  1. Спосіб: Ви завантажуєте лінійне зображення. Тоді ви встановлюєте його як"height: 100px ; width: 2px"

  2. Спосіб: Ви можете використовувати <td>теги<td style="border-left: 1px solid red; padding: 5px;"> X </td>


4

Ви можете використовувати тег hr (горизонтальна лінія), а потім обертати його на 90 градусів з допомогою css нижче

hr {   
    transform:rotate(90deg);
    -o-transform:rotate(90deg);
    -moz-transform:rotate(90deg);
    -webkit-transform:rotate(90deg);
}

http://jsfiddle.net/haykaghabekyan/0c969bm6/1/


Це порушить будь-який текст або елементи, що стоять поруч.
Qwerty

4

Я використав комбінацію запропонованого коду "hr", і ось як виглядає мій код:

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

Я просто змінив значення "лівого" пікселя, щоб розмістити його. (Я використовував вертикальну лінію для вирівнювання вмісту на своїй веб-сторінці, а потім видалив її.)


4

Щоб створити вертикальну лінію з центром у розділі, я думаю, ви можете використовувати цей код. Я думаю, що контейнер може бути на 100% шириною.

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>


Best Answear, всі інші застрягли ліворуч або праворуч. Дякую!
Абдельхаді


3

Якщо ваша мета - помістити вертикальні лінії в контейнер, щоб розділити поруч дочірні елементи (елементи стовпців), ви можете розглянути можливість стилізації контейнера таким чином:

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

Це додає ліву межу всім дочірнім елементам, починаючи з другої дитини. Іншими словами, ви отримуєте вертикальні межі між сусідніми дітьми.

  • >є дочірнім селектором. Він відповідає будь-якій дочірньому елементу, вказаному зліва.
  • *є універсальним селектором. Він відповідає елементу будь-якого типу.
  • :not(:first-child) означає, що це не перша дитина його батька.

Підтримка веб-переглядача: > *: перша дитина та : not ()

Я думаю, що це краще, ніж просте .child-except-first {border-left: ...}правило, тому що має більше сенсу, щоб вертикальні лінії виходили з правил контейнера, а не з різних дочірніх елементів.

Чи краще це, ніж використовувати імпровізований вертикальний елемент правила (шляхом стилізації горизонтального правила тощо), залежатиме від вашого випадку використання, але це принаймні альтернатива.


3

Можливий ще один підхід: Використання SVG .

наприклад:

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

Плюси:

  • Ви можете мати лінію будь-якої довжини та орієнтації.
  • Ви можете легко вказати ширину, колір

Мінуси:

  • SVG зараз підтримується у більшості сучасних браузерів. Але деякі старі веб-переглядачі (як IE 8 і новіші) не підтримують його.

3

Вертикальна лінія праворуч до діва

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

Вертикальна лінія зліва до діву

    <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

Щоб додати вертикальну лінію, потрібно стилювати h.

Тепер, коли ви зробите вертикальну лінію, вона з’явиться посередині сторінки:

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

Тепер, щоб помістити його там, де ви хочете, ви можете використовувати цей код:

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

Це дозволить розташувати його зліва, ви можете обернути її вправо.


2

Існує <hr>тег для горизонтальної лінії. За допомогою CSS можна також зробити горизонтальну лінію:

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

Властивість ширини визначає товщину лінії. Властивість висоти визначає довжину лінії. Властивість кольору тла визначає колір лінії.


1

У Попередньому елементі, після якого потрібно застосувати вертикальний рядок, Ви можете встановити CSS ...

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


0

Для вбудованого стилю я використав цей код:

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

і це розмістило його прямо в центрі.


0

Мені потрібна була вбудована вертикальна лінія, тому я накрутив кнопку, щоб стати лінією.

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

Це спрацювало для мене чудово


-1

Щоб зробити вертикальну лінію до центру в середині, використовуйте:

position: absolute; 
left: 50%;

він запитав, як зробити вертикальну лінію, а не як зробити вертикальну лінію до центру посередині
Bloodhound
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.