Насколько правильно, если 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
- button
block: 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; }
}