#html #css
#HTML #css
Вопрос:
Мне нужна очень простая блок-схема CSS / HTML в приведенном ниже формате:
Node1
|
Node2
|
Node3
|
Node4
|
Node5
|
Node6
Я почти ничего не знаю о CSS, но попытался изменить тот, который подробно описан по ссылке ниже. Проблема была в том, что мне нужна была только линейная вертикальная диаграмма, а в итоге она оказалась повсюду!
http://www.htmlforums.com/css/t-flowchart-using-css-85999.html
Кто-нибудь может помочь?
Комментарии:
1. HTML не предназначен для того, чтобы быть языком построения диаграмм. Я бы переключился на использование SVG вместо этого.
2. Можете ли вы привести мне пример того, как я мог бы использовать SVG для создания блок-схемы, а затем добавить в нее элементы HTML или jQuery?
Ответ №1:
Надеюсь, это работает для вас:
На случай, если скрипта JS исчезнет, вот код.
HTML
<h1>A simple family tree using 32 divs</h1>
<div id="container">
<div id="no1"><a href="#">Production Director</a></div>
<div id="line1"></div>
<div id="no1"><a href="#">Production Director</a></div>
<div id="line1"></div>
<div id="no1"><a href="#">Production Director</a></div>
<div id="line1"></div>
<div id="no1"><a href="#">Production Director</a></div>
</div>
CSS
h1 {
width:580px;
font-family:verdana,arial,helvetica,sans-serif;
font-size:18px;
text-align:center;
margin:40px auto;
}
#container {
width:580px;
font-family:verdana,arial,helvetica,sans-serif;
font-size:11px;
text-align:center;
margin:auto;
}
#container a {
display:block;
color:#000;
text-decoration:none;
background-color:#f6f6ff;
}
#container a:hover {
color:#900;
background-color:#f6f6ff;
}
#no1 {
width:190px;
line-height:60px;
border:1px solid #000;
margin:auto;
}
#no1 a {
height:60px;
}
#line1 {
font-size:0;
width:1px;
height:20px;
color:#fff;
background-color:#000;
margin:auto;
}
#line2 {
font-size:0;
width:424px;
height:1px;
color:#fff;
background-color:#000;
margin:auto;
}
#line3 {
font-size:0;
display:inline;
width:1px;
height:20px;
color:#fff;
background-color:#000;
margin-left:78px;
float:left;
}
#line4,#line5,#line6 {
font-size:0;
display:inline;
width:1px;
height:20px;
color:#fff;
background-color:#000;
margin-left:140px;
float:left;
}
#no2 {
display:inline;
border:1px solid #000;
clear:both;
margin-left:35px;
float:left;
}
#no2 a,#no4 a,#no8 a {
width:84px;
height:50px;
padding-top:8px;
}
#no3 {
display:inline;
border:1px solid #000;
margin-left:58px;
float:left;
}
#no3 a,#no5 a,#no6 a,#no7 a,#no9 a {
width:84px;
height:42px;
padding-top:16px;
}
#no4 {
display:inline;
border:1px solid #000;
margin-left:53px;
float:left;
}
#no5 {
display:inline;
border:1px solid #000;
margin-left:55px;
float:left;
}
#line7,#line13 {
font-size:0;
display:inline;
width:1px;
height:38px;
color:#fff;
background-color:#000;
margin-left:219px;
float:left;
}
#line8,#line14 {
font-size:0;
display:inline;
width:1px;
height:38px;
color:#fff;
background-color:#000;
margin-left:281px;
float:left;
}
#no6,#no8 {
display:inline;
border:1px solid #000;
margin-left:107px;
float:left;
}
#line9,#line11,#line15,#line17 {
font-size:0;
display:inline;
width:26px;
height:1px;
color:#fff;
background-color:#000;
margin-top:29px;
float:left;
}
#line10,#line12,#line16,#line18 {
font-size:0;
display:inline;
width:1px;
height:60px;
color:#fff;
background-color:#000;
float:left;
}
#line16,#line18 {
height:30px;
}
#no7,#no9 {
display:inline;
border:1px solid #000;
margin-left:169px;
float:left;
}
.clear {
clear:both;
}
Комментарии:
1. Это выглядит великолепно! Если бы я должен был добавить неограниченное количество дополнительных узлов, как бы я это сделал?
2. @Frap Если вы используете какой-то цикл для рендеринга всех элементов вашей блок-схемы, вы могли бы указать ему отображать строку 1 div после каждого элемента, чтобы это выглядело так.
3. Чтобы добавить больше, просто продублируйте следующее: <pre> <идентификатор div=»line1″></div> <идентификатор div=»no1″><a href=»#»> Директор по производству</a></div> </pre>
4. @Frap, я забыл упомянуть. Разделите идентификаторы на классы, поскольку их текущее значение не будет проверяться. Надеюсь, это имеет смысл.
5. Итак, вместо идентификатора div измените его на класс div, а затем измените css на . вместо #?