2015-01-06 2 views
0

медведь со мной, как я довольно новыми для HTML,Sidebar продолжает исчезать при добавлении контента

У меня уже есть следующий HTML:

<div class="middle"> 

    <div class="container"> 
     <main class="content"> 
     </main><!-- .content --> 
    </div><!-- .container--> 
    <aside class="left-sidebar"> 
     <ul class="nav"> 
      <li><a href="index.html">HOME</a></li> 
      <li><a href="over.html">OVER</a></li> 
      <li><a href="reizen.html">REIZEN</a></li> 
      <li><a href="afbeeldingen.html">AFBEELDINGEN</a></li> 
      <li><a href="boek_nu.html">BOEK NU</a></li> 
      <li><a href="forum.html">FORUM</a></li> 
     </ul> 
    </aside><!-- .left-sidebar --> 
    </div><!-- .middle--> 
</div><!-- .wrapper --> 

CSS:

.wrapper { 
    width: 100%; 
    margin: 0 auto; 
} 
.header { 
    height: 60px; 
    background: black; 
    opacity: 0.7; 
    margin-top: 1%; 
    position: relative; 
    color: white; 
    font: helvetica 
} 
.container { 
    position: relative; 
    width: 100%; 
    margin-top: 10%; 
} 
.content { 
    padding: 0 0 0 270px; 
} 
/* Left Sidebar -----------------------------------------------------------------------------*/ 
.left-sidebar { 
    position: relative; 
    float: left; 
    width: 10%; 
    height; 
    150%; 
    margin-left: 7%; 
    margin-top: 4%; 
    opacity: 0.7; 
    font-family:"Montserrat", sans-serif; 
    font-size: 20px; 
    color: Red; 
} 

Всякий раз, когда я попробуйте добавить большую картинку в область «контент», вся боковая панель исчезает. У меня есть код в CSS, который правильно позиционирует боковую панель, и я уверен, что это проблема.

Мой вопрос к вам: что было бы правильным кодом CSS, чтобы боковая панель оставалась где-то слева, а область содержимого справа?

+1

Давайте посмотрим CSS! У вас может быть 'overflow: hidden;' установлен на родительский элемент, например '.middle'. – hungerstar

+0

Правильно, это может пригодиться! – Ruud

+0

.обертка { \t ширина: 100%; \t margin: 0 auto; } .header { \t высота: 60px; \t фон: черный; \t непрозрачность: 0,7; \t margin-top: 1%; \t позиция: относительная; \t цвет: белый; \t font: helvetica .контейнер { \t позиция: относительная; \t ширина: 100%; \t margin-top: 10%; } .content { \t padding: 0 0 0 270px; } /* Левая боковая панель ------------------------------------------ ----------------------------------- */ .left-sidebar { \t позиция: относительная; \t float: слева; \t ширина: 10%; \t высота; 150%; \t margin-left: 7%; \t margin-top: 4%; \t непрозрачность: 0,7; \t font-family: "Montserrat", sans-serif; \t font-size: 20px; \t цвет: красный; } – Ruud

ответ

0

У вас много чего работает против вас. Установка .container на что-то вроде 90% не будет работать, потому что она не плавает. Элемент уровня блока с заданной шириной будет по-прежнему занимать всю ширину, а оставшееся пространство заполняется краем. Плавающая удаляет эту маржу, но представляет другие проблемы, о которых вам нужно знать.

Если вы плаваете .container справа и устанавливаете его ширину до 83%, вы достигнете того, что ищете. Почему 83%? Ширина .left-sidebar составляет 10% плюс запас 7% = 17% общей ширины боковой панели. Даже после этой корректировки я опасаюсь, что это не может быть pefect, как такие, как 10% верхний край на .container, а 270px левого дополнения на .content и верхний край 4% на .left-sidebar могут быть не такими, какие вы планировали.

.wrapper { 
 
    width: 100%; 
 
    margin: 0 auto; 
 
} 
 
.header { 
 
    height: 60px; 
 
    background: black; 
 
    opacity: 0.7; 
 
    margin-top: 1%; 
 
    position: relative; 
 
    color: white; 
 
    font: helvetica 
 
} 
 
.container { 
 
    float: right; 
 
    width: 83%; 
 
    margin-top: 10%; 
 
} 
 
.content { 
 
    padding: 0 0 0 270px; 
 
} 
 
.left-sidebar { 
 
    position: relative; 
 
    float: left; 
 
    width: 10%; 
 
    height; 
 
    150%; 
 
    margin-left: 7%; 
 
    margin-top: 4%; 
 
    opacity: 0.7; 
 
    font-family: "Montserrat", sans-serif; 
 
    font-size: 20px; 
 
    color: Red; 
 
}
<div class="middle"> 
 
    <div class="container"> 
 
     <main class="content"> 
 
      <img src="http://lorempixel.com/400/400/city"> 
 
     </main><!-- .content --> 
 
    </div><!-- .container--> 
 
    <aside class="left-sidebar"> 
 
     <ul class="nav"> 
 
      <li><a href="index.html">HOME</a></li> 
 
      <li><a href="over.html">OVER</a></li> 
 
      <li><a href="reizen.html">REIZEN</a></li> 
 
      <li><a href="afbeeldingen.html">AFBEELDINGEN</a></li> 
 
      <li><a href="boek_nu.html">BOEK NU</a></li> 
 
      <li><a href="forum.html">FORUM</a></li> 
 
     </ul> 
 
    </aside><!-- .left-sidebar --> 
 
</div><!-- .middle-->

Позвольте мне воспользоваться этой возможностью, чтобы представить CSS свойство box-sizing набор со значением border-box, который позволяет использовать другую модель коробки.

.example { 
    width: 100px; 
    padding: 0 10px; 
} 

Обычно общая ширина будет 120px = 10px + 100px + 10px.

.example { 
    box-sizing: border-box; 
    width: 100px; 
    padding: 0 10px; 
} 

С box-sizing: border-box общая ширина будет 100px = 10px + 90px + 10px, как указано с шириной собственности. Если вы говорите что-то должно быть XXX ширина будет и эта сумма включает в себя обивку, поля и т.д.

Should you use box-sizing: border-box?

+0

Я, наконец, решил, просто удалив все содержимое HTML и CSS, которые у меня были, и добавив новый div, содержащий только изображение, которое я хотел. Все еще не знаю, что вызвало проблему в первый раз, но это не имеет большого значения. В любом случае, большое спасибо за вашу поддержку! – Ruud

0

Реальная проблема заключается в разработке макета HTML не CSS Вы должны положить левую панель (навигация), прежде чем содержание что-то вроде этого: заголовок, Navigator, содержание, Footer

изменения ширины контейнер до 90% или менее (маржа слева займет 1%) в CSS, так как навигатор составляет 10% . Они должны составлять до 100%

+0

Предлагает для правильного ответа на SO, чтобы предоставить минимальный пример информации, которую вы предоставляете человеку, задающему вопрос. Этот человек идентифицировал себя как новый для HTML, поэтому маловероятно, что то, что вы объясняете, будет очевидным без какого-либо контекста кода. – dho

+1

Не обязательно, по соображениям SEO они могут захотеть, чтобы навигация появилась после содержимого в HTML. Но я вижу, к чему вы клоните, я вижу, где можно улучшить HTML. – hungerstar

+0

Я сделал то, что вы сказали, но теперь боковая панель находится поверх содержимого. Он по-прежнему не выровнен правильно. Любые идеи относительно выравнивания содержимого справа от боковой панели? – Ruud

Смежные вопросы