Насколько правильно, если Layout__rowHeader вынести из layout.css в header.css?
Layout__row Layout__rowHeader
Вообще, разделить на слои всё, это есть хорошо?
Насколько правильно так верстать: https://codepen.io/git2ss/full/jOMwKWz
<header class="header header_theme_dark">
<div class="header__heading">
<h1 class="heading heading_size_xxl heading_theme_dark">
Hello kitty
</h1>
</div>
</header><header class="header header_theme_light">
<div class="header__heading">
<h1 class="heading heading_size_xxl heading_theme_light">
Hello kitty
</h1>
</div>
</header><div class="container">
<div class="container__main">
<div class="row">…</div>
</div>
<div class="container__aside">
<div class="notations">…</div>
</div>
</div> - товар
- фотография
- цена
- старая цена
- размеры<article class="namely">
<img class="namely__photo" src="...">
<dl class="namely__prices">
<div class="namely__price">
<dt class="visually-hidden">Новая цена</dt>
<dt class="namely__price-currency">$</dt>
<dd class="namely__price-value">311</dd>
</div>
<div class="namely__price namely__price_old"> <!-- Модификатор «опишет» цвет и «зачёркнутость» -->
<dt class="visually-hidden">Старая цена</dt>
<dt class="namely__price-currency">$</dt>
<dd class="namely__price-value">450</dd>
</div>
</dl>
<div class="namely__sizes">
<h4 class="namely__sizes-heading">Выберите размер</h4>
<div class="namely__sizes-list">
<label class="namely__size">
S
<input class="namely__size-control input input_type_radio" type="radio" name="size" value="s">
</label>
<label class="namely__size">
M
<input class="namely__size-control input input_type_radio" type="radio" name="size" value="m">
</label>
<!-- … и т. д. -->
</div>
</div>
</article>
<article class="cart">
<h3 class="heading heading_size_xxl cart__title">Очень крупный заголовок 90px</h3>
</article><article class="cart">
<h3 class="heading heading_size_xl cart__title">Крупный заголовок 80px</h3>
</article>Корректен ли такой вариант наименования?
Или правильнее писать не CircleCard, а CardCircle?
Circle — это модификатор Card, то правильно будет иметь разделитель, например, Card_circle. Если нет базового компонента Card, то не нужен никакой Card_circle (можно просто переименовать файл). - section
- text
- search- text
- icon
- heading
- subheading- search
- input
- button- section
- text
- icon
- heading
- subheading
- search
- input
- buttonblock: section
elem: text
elem: icon
block: icon
elem: heading
elem: subheading
elem: search
elem: input
block: input
elem: button
block: button.section
.section__text
.section__icon
.icon
.section__heading
.section__subheading
.section__search
.section__input
.input
.section__button
.button<div class="section">
<div class="section__text">
<div class="section__icon">
<div class="icon"></div>
</div>
<div class="section__heading"></div>
<div class="section__subheading"></div>
</div>
<div class="section__search">
<div class="section__input">
<div class="input"> </div>
</div>
<div class="section__button">
<div class="button"></div>
</div>
</div>
</div><div class="header">
<div class="header__logo"></div>
<div class="header__nav"></div>
</div>.header {
background-color: red;
display: flex;
}
.header__logo {
width: 180px;
}
.header__nav {
flex: 1; /* вся оставшаяся ширина */
}<div class="header">
<div class="header__logo logo">
<img src="" alt="logo of top digital …" class="logo__image">
<img src="" alt="Top digital …" class="logo__text">
</div>
<div class="header__nav"></div>
</div>.logo {
display: flex;
justify-content: space-between;
}
.logo__image {
flex: 1;
}
.logo__text {
width: 75%;
}<div class="header">
<div class="header__logo logo">
<img src="https://via.placeholder.com/43x43" alt="logo of top digital …" class="logo__image">
<img src="https://via.placeholder.com/134x15" alt="Top digital …" class="logo__text">
</div>
<nav class="header__nav nav">
<ul class="nav__menu list list_of_menu">
<li class="list__item nav__menu-item">
<a href="" class="link nav__link">Пункт меню</a>
</li>
<li class="list__item nav__menu-item">
<a href="" class="link nav__link">Пункт меню</a>
</li>
<li class="list__item nav__menu-item">
<a href="" class="link nav__link">Пункт меню</a>
</li>
<li class="list__item nav__menu-item">
<a href="" class="link nav__link">Пункт меню</a>
</li>
</ul>
</nav>
</div>.list_of_menu {
list-style: none;
}
.nav__menu {
display: flex;
}
.nav__menu-item + .nav__menu-item {
margin-left: 1em;
}
.nav__link {
color: white;
text-decoration: none;
}<div class="header">
<div class="header__content content">
<div class="header__logo logo">
<!-- -->
</div>
<nav class="header__nav nav">
<!-- -->
</nav>
</div>
</div>.content {
width: 800px;
margin: 0 auto;
display: flex;
justify-content: space-between;
}<header class="header">
<div class="header__logo"><!-- … --></div>
<div class="header__menu">
<ul class="menu"><!-- … --></ul>
</div>
</header>
<!-- … -->
<footer class="footer">
<div class="footer__logo"><!-- … --></div>
<div class="footer__menu">
<ul class="menu"><!-- … --></ul>
</div>
</footer>.header__menu {
margin-left: 20px;
}
.footer__menu {
margin-left: 30px;
} box-sizing: border-box в блоках (элементах, модификаторах), где нам нужно повлиять на размер при использовании padding'ов, мы делаем Абсолютно Независимые Блоки (АНБ) без неявных зависимостей.— Даже html и body не сбросить?
<!-- index.html -->
<!DOCTYPE html>
<html>
<body class="page">
<!-- page content -->
</body>
</html>/* page.css */
html {
padding: 0;
margin: 0;
}
.page {
padding: 0;
margin: 0;
}— А как же ul-ки и т.д?
<ul class="list">
<li class="list__item">foo
<li class="list__item">bar
</ul>/* list.css */
.list {
margin: 0;
padding: 0;
list-style-type: disc;
list-style-position: inside;
} они просто прописали margin: 0, что идет в разрез с их же правилами
.button {
padding: 20px;
&_size_small {
padding: 10px;
}
}.heading {
margin: 0;
font-feight: bold;
&_size_s { font-size: 18px; }
&_size_m { font-size: 24px; }
&_size_l { font-size: 30px; }
}