Как сделать вертикальную линию в HTML

Как сделать вертикальную линию с помощью HTML?

20 ответов


поставить <div> вокруг разметки, где вы хотите, чтобы строка появилась рядом, и используйте CSS для ее стиля:

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

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

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

используя минимальную ширину и большой размер, горизонтальное правило становится вертикальным.


вы можете использовать пустой <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>

вы также можете сделать вертикальную линию с помощью HTML горизонтальной линии <hr />

html, body{height: 100%;}

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

нет вертикального эквивалента <hr> элемент. Однако один из подходов, который вы можете попробовать, - использовать простую границу слева или справа от того, что вы разделяете:

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

в HTML5 настраиваемые элементы (или чистый CSS)

enter image description here

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

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

*к сожалению, вы не можете создавать пользовательские самозакрывающиеся теги.

использование

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

enter image description here

пример: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;*/
}

*см. Примечания выше.


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

Не самое элегантное решение, хотя.


нет никакого тега для создания вертикальной линии в HTML.

  1. метод: вы загружаете изображение линии. Затем вы устанавливаете свой стиль как "height: 100px ; width: 2px"

  2. метод: вы можете использовать <td> теги <td style="border-left: 1px solid red; padding: 5px;"> X </td>


Почему бы не использовать |, который является специальным символом html для |


вы можете использовать тег 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/


я использовал комбинацию предложенного кода "hr", и вот как выглядит мой код:

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

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


если ваша цель состоит в том, чтобы поместить вертикальные линии в контейнер для разделения дочерних элементов бок о бок (элементы столбцов), вы можете рассмотреть возможность стилизации контейнера следующим образом:

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

это добавляет левую границу ко всем дочерним элементам, начиная со 2-го ребенка. Другими словами, вы получаете вертикальные границы между соседними детьми.

  • > селектор ребенка. Он соответствует любому дочернему элементу (элементам), указанному слева.
  • * - это универсальный селектор. Он соответствует элементу любого типа.
  • :not(:first-child) значит, это не первый ребенок своего родителя.

поддержка браузера: > * :первый-ребенок и :не()

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

ли это лучше, чем использование самодельного вертикальный элемент правила (путем укладки горизонтального правила и т. д.) будет зависеть от вашего варианта использования, но это как минимум альтернатива.


возможен еще один подход: использование 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 и старше) не поддерживают его.

чтобы добавить вертикальную линию, вам нужно создать hr.

теперь, когда вы делаете вертикальную линию, она появится в середине страницы:

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

теперь положите его, где вы хотите, вы можете использовать этот код:

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

это расположит его влево, вы можете инвертировать его, чтобы расположить его вправо.


вертикальная линия прямо к 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>
  

вертикальная линия слева от 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>
  

чтобы создать вертикальную линию, центрированную внутри div, я думаю, вы можете использовать этот код. "Контейнер" вполне может быть шириной 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>

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

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

в предыдущем элементе, после которого вы хотите применить вертикальную строку, вы можете установить CSS ...

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

для встроенного стиля я использовал этот код:

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

и это расположило его непосредственно в центре.


чтобы сделать вертикальную линию к центру в середине используйте:

position: absolute; 
left: 50%;