Jump to content
  • 0

Правильность записи CSS


virus_ostr
 Share

Question

 

Добрый день
Смотрю уроки Css и человек объясняет Следующее на рис

1-2 красным плохая запись, а 1-2 зелёным правильная.
Я с ним не согласен!
Как всё же правильно? Я считаю, что варианты красным правильнее.

 

h_1448092740_5794178_cdafaf61f7.jpg
 

 

Link to comment
Share on other sites

Recommended Posts

  • 0

Начнем с того, что 

margin: 0 0 10px;

 это не одно и то же что 

margin-top: 10px;margin-bottom: 10px;

без контекста, не совсем ясно о чем там говорили в уроке. Но говорить, что какой-то из этих вариантов правильный, а какой-то нет - неправильно. Ситуации разные бывают.

Так же и с font, я например не прописываю к каждому блоку полный формат записи. Шрифт у меня изначально настроен, line-height тоже, в основном меняется только размер шрифта, ну и начертание иногда, вот их я и прописываю, если надо, font-size, font-weight, font-style

 

Есть ссылка на тот чудо-урок?

Link to comment
Share on other sites

  • 0

есть обособленные свойства

background-color: red;border-style: solid;

а есть комбинированные

background: red url() no-repeat;border: 1px solid red;

что значит правильные или не правильные? Они все правильные если написаны так как нужно.

Link to comment
Share on other sites

  • 0

alexriz

margin это я понял, что не одно и тоже, но препод походу нет)

проще всё записать в строку с разными параметрами. чем писать конкретно левый правый. если в этом нет надобности.

Ссылки нет. вечером могу скинкть . в ютубе название канала Уроки веб-разработки  урок "Написание CSS" в курсе 9 уроков время 7.50 момента. Если чё скину ссылку

 

Ещё скажите такой момент, горизонтальное меню списком.

как правильно выравнивать в линию ul 

float: left; или display: inline-block

Link to comment
Share on other sites

  • 0

Я не в том смысле что код выполнится неправильно. Но зачем писать 4 строки кода если можно писать 1 строку и эта строка будет работать точно так же? Мне кажется правильный тон когда кода мало, тем более, что CSS позволяет писать сокращенно.

Link to comment
Share on other sites

  • 0

Это тоже правильно, но что ты за верствльщик, если так пишешь?

margin-bottom: 10px;
margin-left: 15px;
margin-right: 20px;
margin-top: 30px;

 

куда другое дело

margin: 30px 20px 10px 15px; 


Нарек вот вот

А чел в уроке предлагает всё на оборот!

Link to comment
Share on other sites

  • 0
Ссылки нет. вечером могу скинкть . в ютубе название канала Уроки веб-разработки  урок "Написание CSS" в курсе 9 уроков время 7.50 момента. Если чё скину ссылку

Я понял, что за урок. ну там тип какой-то приторможенный малость и противоречит сам себе. забей :)

 

Как бы написал ты? Как в первом варианте или как во втором?

Сокращенно, как в первом border-radius: 3px 3px 0 0;

 

А чел в уроке предлагает всё на оборот!

Ну не совсем так. Он говорит о том, что если меняется только margin-bottom, то незачем писать сокращенную запись со всеми значениями, когда можно написать только margin-bottom. Но потом, начинает выдавать что-то неадекватное, мол тот нолик в сокращенной форме это плохо.

 

В общем, если меняется только один параметр, то модифицируй только его, а если больше, то возможно имеет смысл использовать сокращенную форму. 

 

Тот парень вообще пытается просветить в тонкостях написания читабельного кода, но что-то сам в этом не сахар :D

Link to comment
Share on other sites

  • 0

Да если честно уже пересмортер около 5 курсов по CSS в последовательности Sorex, Гоша Дударь, Webtheory, DenWeb, и вот попал на Уроки веб-разработки этого чела. Лучше чем sorex никого нет! Гоша, чуть сосмеху не умер пишет: transform: rotate(360deg) и говорит что-то не работет, наверно браузер не поддерживает. Веб теория норм рассказывает. Но после Sorexa почти нового для себя не вынес.

 

Вот ещё следующее видео чела, в своём свеже написанном коде 2 минуты ищет ошибку))

В сети не так много уроков по веб, и куда меньше толковых уроков.

Код

http://storage6.static.itmages.ru/i/15/1121/h_1448113022_8874989_1124c81b32.jpg

 

А вот ещё вопрос

 

Ещё скажите такой момент, горизонтальное меню списком.
как правильно выравнивать в линию ul
float: left; или display: inline-block

 

 

Всем спасибо 


Да не "курс Попова" это ещё ничё, по сравнению с тем что есть на ютубе.

Link to comment
Share on other sites

  • 0
я тоже не в курсе что за урок, но судя по вопросам ТС это курс Попова

Не, у Попова исключительно ID, тут классы хотя бы)) Поверь, я прошел через это, почерк гуру мне до боли знаком)) 

Edited by Нарек
Link to comment
Share on other sites

  • 0
Ссылка на урок то есть, а то вы все похоже в теме, а я нет?

 

Я наютьюбил просто

 

Но после Sorexa почти нового для себя не вынес.

Да Sorax норм видео делает, правда редко) 

 

А вот ещё вопрос   Ещё скажите такой момент, горизонтальное меню списком. как правильно выравнивать в линию ul float: left; или display: inline-block
 

Для начала не использовать ul)

Если выбирать между float и inline-block, то как по мне удобнее inline-block и более гибкое решение получится. Но если серьезно, то оба варианта не подходят для решения этой задачи, т.к. технология в принципе не предназначина для этого.

Правильно делать flexbox

Link to comment
Share on other sites

  • 0

Говорят,  что flexbox ещё не всеми браузерами нормально поддерживается.

Это получается что ul можно забыть и начинать как бы дивами? в построении HTML

   <ul>       <li><a href=""></a></li>       <li><a href=""></a></li>       <li><a href=""></a></li>   </ul><div class="my-flex-container">  <div class="my-flex-block">item1</div>  <div class="my-flex-block">item2</div>  <div class="my-flex-block">item3</div></div>

Вот видео зацените чему же у него можно научиться?

Link to comment
Share on other sites

  • 0
Говорят, что flexbox ещё не всеми браузерами нормально поддерживается. Это получается что ul можно забыть и начинать как бы дивами? в построении HTML

А, какая, пардон, логическая связь?

 

«Говорят, зеленая краска не во всех магазинах бывает. Это что, получается, гвозди можно забыть и соединять доски только шурупами? в построении забора...»

 

Пардон, не прочитал предысторию и неправильно понял реплику.

Link to comment
Share on other sites

  • 0
Говорят,  что flexbox ещё не всеми браузерами нормально поддерживается.

Что говорить, когда есть http://caniuse.com/#search=flexbox

Я уже делаю проекты на flexbox, все круто выходит.

 

Это получается что ul можно забыть и начинать как бы дивами? в построении HTML

ну не совсем, если это навигация то есть тег nav

<nav class="nav">    <a href="#" class="nav-itm">Item_1</a>    <a href="#" class="nav-itm">Item_2</a>    <a href="#" class="nav-itm">Item_3</a>    <a href="#" class="nav-itm">Item_4</a>    <a href="#" class="nav-itm">Item_5</a></nav>
Link to comment
Share on other sites

  • 0

Чёт читаю и происходит очередной взрыв шаблона.

Допустим есть меню(главное меню):

<nav> <ul>  <li><a>Пункт 1</a></li>  <li><a>Пункт 2</a></li>  <li><a>Пункт 3</a></li> </ul></nav>

Ммм, и ul можно не писать? Как предложили ранее:

<nav class="nav">    <a href="#" class="nav-itm">Пункт 1</a>    <a href="#" class="nav-itm">Пункт 2</a>    <a href="#" class="nav-itm">Пункт 3</a></nav>

Просто эта запись больше подходит для хлебных крошек к примеру, или главное меню можно также верстать?

Link to comment
Share on other sites

  • 0

Почему-то многие думают что меню это список. Список и Меню это разные вещи, не нужно их смешивать. 

Ну точнее я то понимаю, почему так многие думают, но те времена, когда это было хоть с какой-то натяжкой оправдано, прошли давно

Link to comment
Share on other sites

  • 0

Да просто какой курс не глянь везде основа меню это список. Да и уроки 2015 года. Вот и непонятно как правильно делать


А ещё спросить зачем писать <nav class="nav"> если сss можно задать самому тегу <nav> без класса, или так не правильно?

Link to comment
Share on other sites

  • 0

Да просто какой курс не глянь везде основа меню это список. Да и уроки 2015 года. Вот и непонятно как правильно делать

А ещё спросить зачем писать <nav class="nav"> если сss можно задать самому тегу <nav> без класса, или так не правильно?

на сайте может быть несколько тегов <nav>. Да и лучше использовать классы, так код понятнее стает.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By zeiger2
      Здравствуйте! У меня стоит задача, что при наведении на блок li строка должна поменять цвет, в том числе и картинка. Я меняю картинку с помощью 
      background-image: none;     background: url(../img/check_icon_red.png) left no-repeat;   Но теперь картинка позицианируется не там где должна, её можно поставить на место только вручную, через -100px. Нужно поставить ровно туда, где она была. Должна быть в одном ряду с другими
    • By Mix9
      есть див с 5 img, при уменьшении экрана див выходит за него. Я добавил overflow: auto для этого div в надежде на то, что я смогу прокручивать фотки с помощью скроллбара, однако даже с ним почему-то я не вижу часть фоток которые вышли за границу. Что с этим можно сделать? класс video повторяется 5 раз, я тут оставил только 1 
      .content{ width: 90%; background-color: #333; } .video{ margin: 0px 4px 0px 4px; width: 310; display: flex; flex-direction:column; } .video_button_text{ margin-top: 10px; display: flex; flex-direction: row; font-size: 20px; color: white; } .video_text_div{ display: inline-block; width: 250px; } .video_text{ text-align: justify-all; margin: 0px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .slidan_videos{ margin: 0px 10px 0px 20px; overflow: auto; width: auto; margin-bottom: 50px; display: flex; flex-direction: row; justify-content: space-around; } <div class="content"> <div class = slidan_videos> <div class = video> <div> <a href = 'ссылка'><img class="img" src=""картинка"></a> </div> <div class = video_button_text> <div class = avatarka_div> <a href="ссылка" target="_blank"><img class = avatarka src="картинка"></a> </div> <div class = video_text_div> <p class = video_text><a href="ссылка">текст</a></p> </div> </div> </div>
    • By Kaido
      Использую готовый плагин для модальных окон(от MaxGraph). Проблема в том, что когда у меня открыто два модальных окна, для примера Форма + Политика конфендициальности, и мне нужно закрыть политику вместе с ней закрывается и другое модальное окно. В JS я не сильно разбираюсь(собственно из за этого и использую готовый плагин), можете помочь кто работал с этим плагином? Я примерно понимаю как он работает, но реализовать чтобы закрывалось только одно не получается.
       
        <div class="content"> <button class="modal-btn" data-path="first" data-animation="fadeInUp" data-speed="1500">Открыть окно 1</button> </div> <div class="modal"> <div class="modal__wrapp" data-target="first"> <div class="modal__content"> <button class="modal__close">Закрыть</button> модальное окно <button data-path="policy">Политика</button> </div> </div> <div class="modal__wrapp" data-target="policy"> <div class="modal__content"> <button class="modal__close">Закрыть</button> политика </div> </div> </div> .modal { --transition-time: 0.3s; position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 1000; cursor: pointer; overflow-y: auto; overflow-x: hidden; text-align: center; opacity: 0; visibility: hidden; transition: opacity var(--transition-time), visibility var(--transition-time); } .modal__wrapp { display: none; cursor: default; width: fit-content; height: fit-content; } .modal__content{ position: absolute; left: 500px; width: 500px; height: 500px; display: flex; color: white; flex-direction: column; text-align: left; background-color: #000; } .modal__content button{ width: 200px; height: 50px; margin: 50px 0; } .modal.is-open { opacity: 1; visibility: visible; transition: opacity var(--transition-time), visibility var(--transition-time); } .modal__wrapp.modal-open { display: flex; } .disable-scroll { position: relative; overflow: hidden; height: 100vh; position: fixed; left: 0; top: 0; width: 100%; } .fade { opacity: 0; transition: opacity var(--transition-time); } .fade.animate-open { opacity: 1; transition: opacity var(--transition-time); } .fadeInUp { opacity: 0; transform: translateY(vw(-100)); transition: opacity var(--transition-time), transform var(--transition-time); } .fadeInUp.animate-open { opacity: 1; transform: translateY(0); transition: opacity var(--transition-time), transform var(--transition-time); } .modal__wrapp[data-target="policy"] .modal__content{ left: 1050px; background-color: #000; opacity: .5; } class Modal { constructor(options) { let defaultOptions = { isOpen: () => {}, isClose: () => {}, } this.options = Object.assign(defaultOptions, options); this.modal = document.querySelector('.modal'); this.speed = false; this.animation = false; this.isOpen = false; this.modalContainer = false; this.previousActiveElement = false; this.fixBlocks = document.querySelectorAll('.fix-block'); this.focusElements = [ 'a[href]', 'input', 'button', 'select', 'textarea', '[tabindex]' ]; this.events(); } events() { if (this.modal) { document.addEventListener('click', function(e){ const clickedElement = e.target.closest('[data-path]'); if (clickedElement) { let target = clickedElement.dataset.path; let animation = clickedElement.dataset.animation; if (clickedElement.classList.contains('modal-close')) { this.close(); } let speed = clickedElement.dataset.speed; this.animation = animation ? animation : 'fade'; this.speed = speed ? parseInt(speed) : 300; this.modalContainer = document.querySelector(`[data-target="${target}"]`); this.open(); return; } if (e.target.closest('.modal__close')) { this.close(); return; } }.bind(this)); window.addEventListener('keydown', function(e) { if (e.keyCode == 27) { if (this.isOpen) { this.close(); } } if (e.keyCode == 9 && this.isOpen) { this.focusCatch(e); return; } }.bind(this)); this.modal.addEventListener('click', function(e) { if (!e.target.classList.contains('modal__wrapp') && !e.target.closest('.modal__wrapp') && this.isOpen) { this.close(); } }.bind(this)); } } open() { this.previousActiveElement = document.activeElement; this.modal.style.setProperty('--transition-time', `${this.speed / 1000}s`); this.modal.classList.add('is-open'); this.disableScroll(); this.modalContainer.classList.add('modal-open'); this.modalContainer.classList.add(this.animation); setTimeout(() => { this.options.isOpen(this); this.modalContainer.classList.add('animate-open'); this.isOpen = true; this.focusTrap(); }, this.speed); } close() { if (this.modalContainer) { this.modalContainer.classList.remove('animate-open'); this.modalContainer.classList.remove(this.animation); this.modal.classList.remove('is-open'); this.modalContainer.classList.remove('modal-open'); this.enableScroll(); this.options.isClose(this); this.isOpen = false; this.focusTrap(); } } focusCatch(e) { const focusable = this.modalContainer.querySelectorAll(this.focusElements); const focusArray = Array.prototype.slice.call(focusable); const focusedIndex = focusArray.indexOf(document.activeElement); if (e.shiftKey && focusedIndex === 0) { focusArray[focusArray.length - 1].focus(); e.preventDefault(); } if (!e.shiftKey && focusedIndex === focusArray.length - 1) { focusArray[0].focus(); e.preventDefault(); } } focusTrap() { const focusable = this.modalContainer.querySelectorAll(this.focusElements); if (this.isOpen) { focusable[0].focus(); } else { this.previousActiveElement.focus(); } } disableScroll() { let pagePosition = window.scrollY; this.lockPadding(); document.body.classList.add('disable-scroll'); document.body.dataset.position = pagePosition; document.body.style.top = -pagePosition + 'px'; } enableScroll() { let pagePosition = parseInt(document.body.dataset.position, 10); this.unlockPadding(); document.body.style.top = 'auto'; document.body.classList.remove('disable-scroll'); window.scroll({ top: pagePosition, left: 0 }); document.body.removeAttribute('data-position'); } lockPadding() { let paddingOffset = window.innerWidth - document.body.offsetWidth + 'px'; this.fixBlocks.forEach((el) => { el.style.paddingRight = paddingOffset; }); document.body.style.paddingRight = paddingOffset; } unlockPadding() { this.fixBlocks.forEach((el) => { el.style.paddingRight = '0px'; }); document.body.style.paddingRight = '0px'; } } const modal = new Modal({ isOpen: (modal) => { console.log(modal); console.log('opened'); }, isClose: () => { console.log('closed'); }, });  
    • By stasN1
      Мне нужен такой результат :

      Не понимаю почему background не применяется вокруг иконок:

       
      Сам код:
      Html:
      css:

      Html:
      <section class="finish"> <div class="container"> <h2 class="finish_header">По окончании обучения Вы сможете!</h2> <div class="finish_divider"></div> <div class="finish_wrapper"> <finish_item> <div class="finish_round"> <img src="/icons/finish/1 (1).png" alt="" class="finish_icon"> </div> <div class="finish_descr">Создать свой сайт или блог</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/2.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Создать свой сайт или блог</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/3.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Обеспечить ему медленный, но верный рост в ТОП</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/4.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Достигнуть стабильного прироста посетителей</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/5.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Достигнуть стабильного прироста посетителей</div> </finish_item> </div> </div> </section>  
      Css:
      .finish .finish_wrapper { margin-top: 41px; display: flex; justify-content: space-between; } .finish .finish_wrapper .finish_item { width: 204px; } .finish .finish_wrapper .finish_item .finish_round { width: 115px; height: 115px; background-color: #b4e2ff; border-radius: 8px; } .finish_descr { font-family: Roboto; font-size: 17px; line-height: 20px; font-weight: 300; color: #efefef; Спасибо!
       

      Уже решил, спасибо!
      У меня CSS селектор вида:
      .finish .finish_wrapper .finish_item .finish_round

      А должен быть:
      .finish .finish_wrapper finish_item .finish_round
      Т.е. без точки перед finish_item, так как это не класс, а элемент
    • By Dos1er
      Приветствую! 
      Подскажите, плиз, как сделать чекбокс как на скрине? 
      Я новичок в верстке и что-то не могу разобраться в кастомизации данной штуки

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy