Я использовал два параметра границы, чтобы объединить различные кнопки на моем сайте, и из-за этого они теперь каскадируются примерно на один разрыв строки. (См. Изображение: http://gyazo.com/14af343dea8b280262f6c88465659c42)
HTML и CSS практически одинаковы для каждой кнопки, поэтому я разместил пример. Любые идеи о том, почему это происходит (я думаю, это теги div) и как я могу это остановить?
EDIT - JS Загрузка скрипта: http://jsfiddle.net/4phcS/
CSS:
#linkwordpress
{
color:white;
background-color:#5C0DAC;
font-family:Arial, Sans-Serif;
font-size:18px;
text-align:center;
width:100px;
height:30px;
position:relative;
top:-90px;
left:500px;
line-height:28px;
border:2px solid;
border-radius:25px;
}
HTML:
<div id="linkwordpress">
<a href="../wordpress">Wordpress</a>
</div>
Ваш вопрос немного расплывчатый, но если бы я должен был догадаться, я бы сказал, что тот факт, что вы используете div, вероятно, почему.
Divs по сути имеют display:block
. Попробуйте изменить отображение на inline
или inline-block
.
#linkwordpress
{
color:white;
background-color:#5C0DAC;
font-family:Arial, Sans-Serif;
font-size:18px;
text-align:center;
width:100px;
height:30px;
position:relative;
top:-90px;
left:500px;
line-height:28px;
border:2px solid;
border-radius:25px;
display:inline;
}
или если ваш id #linkwordpress - это просто контейнер, добавьте его display:inline;
или display:inline-block;
к anchor
внутри div вместо этого так:
#linkwordpress a {
display:inline-block;
}
Лучшим решением было бы удалить <div>
со всех якорей целиком и устранить проблему, с которой вы страдаете, с помощью свойства display
. Как это:
<nav>
<div>
<a class="Menu-Item" href="#">Home</a>
<a class="Menu-Item" href="about.html">About</a>
<a class="Menu-Item" href="cv.html">CV</a>
<a class="Menu-Item" href="../wordpress">Wordpress</a>
<a class="Menu-Item" href="../webshop/catalog">Webshop</a>
</div>
EDIT: после изучения вашего кода я заметил несколько проблем, с которыми вы столкнулись, которые нарушали навигацию. Я прикрепил новый JSFiddle, который, как я думаю, выполняет то, что вы ищете, и попытается объяснить некоторые из приведенных ниже изменений:
http://jsfiddle.net/Incredulous/j4ZbT/
У вас были свободные плавающие элементы в вашем <div id="container">
которые нужно было поместить в другой div
и обработать как столбец.
Я добавил 2 divs к вашему коду:
<div id="col2">
<div id="sideboxhead">Who am I?</div>
<!-- lots of content here -->
</div>
<div id="col1">
<div id="header2">Home</div>
<!-- lots of content here -->
</div>
Затем добавили соответствующий CSS, чтобы рассматривать их как столбцы:
#col1 { float:left;width:644px;}
#col2 { float:right; width:145px;}
Я также изменил все свойства width
#col1
в #col1
чтобы #col1
этого применить width
ко всему столбцу.
Я удалил весь ваш top:XXpx;
потому что вы искусственно пытались создать/уменьшить пространство и вместо этого добавили значение margin
в элемент nav
который может быть отрицательным.
Наконец, я удалил все ваши left
значения и вместо этого добавил float
в столбцы. Если вам по-прежнему требуется смещение области содержимого центра, вы можете добавить еще один контейнер div
в оба #col2
и #col1
, уменьшите его ширину, а затем измените ширину #col1
на разницу старой ширины - новой ширины.
Надеюсь это поможет.
width:800px;
что звучит для меня гораздо больше, как контейнер, который должен содержать ваши отдельные кнопки.
Не используйте id (#), используйте классы следующим образом:
.header {
color:white;
text-align:center;
background-color:#5C0DAC;
font-family:Arial, Sans-Serif;
font-size:30px;
padding:0px;
margin-bottom:10px;
height:38px;
width:800px;
border:2px solid;
border-radius:25px;
display: inline-block;
}
И используйте display: inline-block.
<div class="header">
Leon CS150 Assignment
</div>
<div class="header">
Leon CS150 Assignment 2
</div>
Обновить:
После прочтения вашего комментария причина, по которой ваши объекты являются вертикальными, а не горизонтальными, состоит в том, что для элемента, содержащего вашу навигацию, требуется один из этих двух тегов:
display: inline;
display: inline-block;
Эти два элемента заставляют элементы оставаться на одной линии, а не постоянно переходить на новую строку. Подумайте о кукле-гнезде, каждая кукла - это однослойное глубокое погружение дальше и дальше в куклу. То же самое относится к html, поэтому для того, чтобы противодействовать тому, что падение линии на элемент вы изменяете размеры, поплавок или отображение, чтобы удовлетворить дизайн цели.
Я все еще не совсем уверен, что вы пытаетесь создать или сделать. Является ли это более сложным, что вы пытаетесь выполнить? скрипка
Когда вы смотрите на код, это не так уж сильно отличается от вашего. Одно из главных отличий заключается в том, что nav
- это просто div
но он привязывается к родительскому элементу. В этом случае header
. Поэтому я определяю этот элемент как position: absolute;
что позволит более точно контролировать всю структуру меню.
Затем для большого меню и рефакторинга иногда лучше использовать div
над традиционной ul
или plain a href
. Это добавит более высокий уровень контроля еще раз над структурой вашего меню.
Также вы заметите, что я не использую Id
. Это потому, что Id
разрешен только на одной странице, он уникален. Это означает, что его нельзя использовать более одного раза. class
может быть, что является более встроенным для повторяющихся значений на всей странице.
Я все еще не совсем уверен в вашей цели и плохой формулировке вопроса, но, надеюсь, это указывает на правильное направление:
header {
width: 100%;
height: 100px;
background: #5C0DAC;
}
h3 {
font-family: Arial, Sans-Serif;
color: white;
text-align: center;
}
nav {
width: 100%;
height: 10%;
position: absolute;
left: 85px;
}
.Menu-Item {
width: 100px;
height: 30px;
padding: 10px 35px;
border-radius: 25px;
display: inline;
margin: 0px 15px;
box-shadow: 0px 3px 6px 0px;
position: relative;
}
a {
font-family: Arial, Sans-Serif;
text-align: center;
line-height: 28px;
color: white;
}
html
:
<header>
<h3>Leon CS150 Assignment</h3>
<nav>
<div class="Menu-Item">
<a href="#">Home</a>
</div>
<div class="Menu-Item">
<a href="#">About</a>
</div>
<div class="Menu-Item">
<a href="#">CV</a>
</div>
<div class="Menu-Item">
<a href="#">Wordpress</a>
</div>
<div class="Menu-Item">
<a href="#">Webshop</a>
</div>
</nav>
</header>
cascade
?