splincode
@splincode
Выучиться не значит знать

Так как же правильно верстать сайты?

Демо: https://splincode.github.io/unitrack/site/profile.html
Код: https://github.com/splincode/unitrack/tree/gh-page...

У меня есть проект, сам я студент первого курса, я сделал прототип, однако мой куратор сказал, что готов убить за то, что я тут наваял в коде. Можете сказать, что я неправильно сделал и, что я могу подправить, исправить, улучшить, оптимизировать? Заранее спасибо.
  • Вопрос задан
  • 2667 просмотров
Решения вопроса 4
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Ну у вас там нет ничего — несколько десятков строк кода. Не страшного кода. Фтопку препода.

HTML
Нет meta с charset. Шанс на то, что сервер не отдаст кодировку в Content-Type, ничтожно мал, но соломку лучше положить. Да и для локального просмотра по file:// пригодится. Прямо перед title.
Декларация есть, стили перед скриптом.
Часть элементов без классов, что может превратить дальнейшее усложнение кода в сущий ад.
Блоки с классами clear и line — избыточный код. Это реализуется с помощью псевдоэлементов или самих элементов.
А вот a.submit — чушь. В форме нужна кнопка button.submit. У формы должен быть action, отправляться она должна по https:// и методом post.
По стилистике «Ваш» — архаизм. Выкиньте.

CSS
Не привязывайтесь к именам тэгов. Потом сильно пожалеете.
Шрифт задан а html — хорошо.
Задавать блочным элементам в нормальном потоке width: 100%; — моветон.
Не ставьте z-index с шагом больше, чем 1.
Устанавливать cursor для :hover — странно. Лучше не делать смену этого правила при наведении, ведь курсор имеет смысл только при наведении.
Для border-radius не нужно вендорных префиксов.
Размер кегля шрифта лучше привязывать либо к размеру кегля родительского элемента, либо корневого элемента (rem).
Жонглирование странными значениями размеров говорит о том, что для вас тема построения визуальной модели пока сложна. Обязательно к прочтению.

JS
Ну тут вообще ничего пока нет. Но уже если пишете $(), то jQuery-то нужно подключить.
Ответ написан
Кратко по HTML:
  1. Разные кавычки.
  2. Разное написание наименований классов.
  3. Непонятный input=range у "в сети" (checkbox?)
  4. Прописывать класс у каждого li - дурной тон (только если вы не БЭМ-бой)
  5. Использование br не по назначению.
  6. Использование clear - сейчас это дурной тон.
  7. Использование div для текста и лишние теги + классы.
  8. Иконки лучше через отдельный тег (span или i)


Кратко по CSS:
  1. Древний сброс стилей по универсальному селектору.
  2. Отсутствие единообразия написания CSS-кода. Стилистика написания (то есть точка с запятой, то нет и т.д.).
  3. Куча пустых элементов.


Я не буду загонять про семантику и прочее, но:
  1. Логотип должен быть отдельно от списка навигационного меню.
  2. Range, как я понял - это checkbox?
  3. Куча элементов, выпирающих из своего родителя.
  4. Нет адаптивности.
  5. Иконки в шрифт или спрайт (как хотите).
  6. Дальше больше.
Ответ написан
SKolt
@SKolt
https://www.instagram.com/seregamih/
Может ваш преподаватель имел ввиду, что вы некорректно используете теги? В некоторых местах нарушена семантика. HTML5 разметки вообще нету.

Те же самые менюшки через списки, где банальные ссылки?? Почему отступы делаете за счет тега br?? У абзаца все оступы поубирали. Много пустых дивов. И это только поверхностный взгляд, не углубляясь в ваш код.

Я бы своих за такое не убил конечно :) Но вот экзамен бы точно не засчитал.

А вообще, я не знаю, чему вас там учат. У каждого немного своя философия. Вы не пробовали спросить у учителя? :)
Ответ написан
delphinpro
@delphinpro Куратор тега CSS
frontend developer
по стилистике кода:
- разные кавычки в html,
- код типа "ul.navleft li:hover, ul.navcentral li:hover, ul.navleft .active" лучше форматировать с переносом каждого селектора на отдельную строку (легче читать),
- код "margin-left: 10px; width: 25px; height: 25px;" тоже фигово, каждое правило на новой строке
по коду:
- нет указания кодировки
- label должен связываться с input (select, textarea) через атрибуты for-id
- класс .clear - лишний, как и элемент с его использованием (есть другие, более семантичные варианты очистки потока)
- описание поля следует после самого поля (некорректно логически, хотя конечно в CSS можно настроить любой вид)
- отправка формы - кнопкой (должна быть)
- универсальный селектор "*" не к месту,
- стилизация через имя тега (огромное зло, и, поверьте, сложно расширяемое и поддерживаемое)
Можно еще придраться к слишком общим именам селекторов (reg, submit и т.п.).
- селекторы типа tag.class - совершенно излишни, достаточно .class
............

В общем, таких мелких косяков еще кучу найти можно (я просто код посмотрел, не анализируя построение разметки, а там наверное тоже есть интересности), но убивать за это явно не стоит =)))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
R0s0maxa
@R0s0maxa
junior web-developer
<!DOCTYPE html>
Вы используете этот доктайп, но совсем не используете семантический html5. Выкидывайте нафиг все эти div`ы
<a class='submit' href='profile.html'/>
<label>
					<input type='text' value='demo' />
					<span>Ваш email:</span>
					<div class="clear"></div>
				</label>

используете label не по назначению.
<li class='name-1'>настройки</li>
Не есть хорошей практикой
<br><br>
Тоже нафиг

<h1>Добро пожаловать</h1>
							<h2>Современно, стильно, эффективно</h2>

а сюда наоборот следовало бы добавить классы.
Ответ написан
mrusklon
@mrusklon
Не получается? Яростно гугли!
код примитивный , нечего портить , видимо табуляция. Используйте ширину таба в 3-4 пробела
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы