Возникли проблемы со свойствами flexbox

У меня есть несколько проблем, которые нужно исправить, это 1- Почему свойства класса логотипа не работают? 2- Почему заголовок класса не перемещается вправо, т.е. justify-content: flex-end не работает ИЛИ каким другим способом это можно сделать? 3- Надо ли писать display: flex; во всех родительских классах или просто в контейнере, в котором их всех достаточно? 4- Как это повлияет, если я использую display: flex; на всех родительских классах? Огромное спасибо

--- HTML ---

    <!DOCTYPE html>
<html lang = "en">
<head>
    <meta charset = "UTF-8">
    <meta name = "viewport" content = "width=device-width", initial-scale = 1.0>
    <title>My Portfolio</title>
    <link rel = "stylesheet" type = "text/css" href = "port.css">
</head>
<body>
    <div class = "container">
        <div class = "header">
            <div id = "logo"> Logo </div>
            <div class = "title">JAMES O BRAIN
            <div class = "sub-title">FRONT-END MONK</div> </div>
        </div>
    <div class = "container2">
        <div class = "centre-picture">Central Pic</div>
        <div class = "left-boxs">
            <div class = "blue-box">Blue Box</div>
            <div class = "grey-box">Grey Box</div>
            <div class = "green-box">Green Box</div>
        </div>
    </div>
        <div class = "bottom-boxs">
            <div class = "featured-work">Featured Work</div>
            <div class = "appify">APPIFY</div>
            <div class = "sunflower">SUNFLOWER</div>
            <div class = "bokeh">BOKEH</div>
        </div>
    </div>  
</body>
</html>

--- CSS ---

    .container {
    display: flex;
    flex-direction: column;
    border: 5px solid black;
    margin: 10px;
    padding: 50px;
}
.header {
    display: flex;
    border: 5px solid green;
}
.logo {
    /* why these all properties not working at all ? */
    border: 3px solid black;
    padding: 10px;
    margin: 10px;
}
.title { 
    border: 3px solid orange;
  justify-content: flex-end; /* why this property not working, how can i get this to right ?*/
    padding: 10px;
    margin: 10px;
}
.sub-title {
    border: 3px solid black;
    padding: 5px;
    margin: 5px
}
.container2 {
    display: flex;
    border: 5px solid red;
    margin: 10px;
    padding: 10px;
    height: 300px;

}
.centre-picture {
    border: 3px solid black;
    margin: 10px;
    padding: 10px;
}
.left-boxs {
    border: 3px solid goldenrod;
    margin: 10px;
    padding: 10px;
    order: -1;
}
.green-box {
    background-color: green;
    padding: 5px;
    margin: 5px 
}
.blue-box {
    background-color: blue; 
    padding: 5px;
    margin: 5px
}
.grey-box {
    background-color: grey;
    padding: 5px;
    margin: 5px 
}
.bottom-boxs {
    display: flex;
    border: 5px solid blue;
}
.appify {
    border: 3px solid black;
    margin: 10px;
    padding: 10px;
}
.sunflower {
    border: 3px solid black;
    margin: 10px;
    padding: 10px;
}
.bokeh {
    border: 3px solid black;
    margin: 10px;
    padding: 10px;
}
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
65
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это потому, что в вашем HTML вы используете идентификатор #, но ваш CSS нацелен на класс .. Вместо этого измените свой CSS на это:

#logo {
    /* why these all properties not working at all ? */
    border: 3px solid black;
    padding: 10px;
    margin: 10px;
}

Спасибо за это, не знаю, как я это пропустил :-)

JaseyJS 14.05.2018 11:51

Осталось ответить еще на 3 вопроса ;-)

JaseyJS 14.05.2018 12:16
Ответ принят как подходящий
  1. Как сказал Дэниел, вы должны убедиться, что не путаете селекторы #id и .class в своей разметке / CSS. В вашей таблице стилей вы должны использовать #logo вместо .logo.

  2. Есть несколько способов выровнять элементы в заголовке. В приведенном ниже примере я прикрепил justify-content: space-between; к div .header, который выровняет любые прямые дочерние элементы с равным количеством оставшегося свободного пространства между ними. Есть и другие способы сделать это ... это всего лишь один из вариантов. Вы можете поиграть с полями, отступами и другими значениями flexbox, чтобы увидеть, что лучше всего подходит для вас.

  3. Предоставление контейнера display: flex повлияет на все дочерние элементы внутри контейнера, но нет - содержимое внутри каждого из этих дочерних элементов. Например: если у вас есть контейнер с тремя элементами div внутри, и вы даете контейнеру display: flex; justify-content: center;, он будет центрировать каждый div по горизонтали, но нет - текст, изображения и т. д. Внутри каждого div. В вашем случае, по крайней мере, в этом примере, да, вам нужно добавить display: flex; в каждый из div внутри заголовка, чтобы применить свойства flexbox к тексту внутри.

Надеюсь, это немного поможет. См. Фрагмент ниже для одного примера. Удачи!

  

.container {
  display: flex;
  flex-direction: column;
  border: 5px solid black;
  width: 80%;
  padding: 50px;
}

.header {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  border: 5px solid green;
  padding: 10px;
}

#logo {
  display: flex;
  justify-content: center;
  align-items: center;
  border: 3px solid black;
  padding: 10px;
}

.title { 
  display: flex;
  justify-content: center;
  align-items: center;
  border: 3px solid orange;
  padding-left: 10px;
}

.sub-title {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 10px;
  padding: 10px;
  border: 3px solid black
}
<div class = "container">
  <div class = "header">
    <div id = "logo">Logo</div>
    <div class = "title">JAMES O BRAIN
      <div class = "sub-title">
        FRONT-END MONK
      </div> 
    </div>
  </div>
</div>  

Другие вопросы по теме