обучение CSS все более и более профессионально - PullRequest
10 голосов
/ 10 июля 2010

Я занимаюсь разработкой сайтов с последних двух лет, и мне трудно изучать CSS (просто потратить целый день на создание поля для входа, такого как твиттер ...).И рано или поздно я возвращаюсь к макету таблицы и добиваюсь цели (почти все, что я копаю в чужом исходном коде и Google, как в аду), но мне хотелось бы знать, как это сделать, как я обычно понимаюпроблема программирования вместо гугла весь день ...).

И даже через некоторое время, если я достигну цели создать идеальный макет и вернусь в IE для тестирования, все испорчено.

Я единственный, кто его разрабатывает, поэтому обычно 70% моего времени тратится на дизайн и 30% на программирование.

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

Как вы все программист + дизайнер работаете?И как освоить CSS?

Ответы [ 8 ]

13 голосов
/ 10 июля 2010

Как вы все программист + дизайнер работаете?

При работе с CSS я считаю, что лучше всего сначала спроектировать и создать сайт для браузера, соответствующего стандартам (я предпочитаю FireFox). Затем, когда у вас все получится, проверьте его на наличие Internet Explorer и других браузеров.

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

А как освоить CSS?

Есть несколько несущественных вещей, которые могут сделать вашу жизнь проще: Первое, что я узнаю, это модель Box . Это официальная статья W3C на эту тему, которая довольно длинная, поэтому ниже я также добавлю изображение, которое немного ее упрощает:

alt text

Важно отметить, что браузеры рассчитывают это по-разному.

Как только вы поймете, что заставляет вещи самим определять размеры, раскладки должны быть проще в том же стиле, что и таблицы.

Вторым, что помогло мне обернуть голову вокруг происходящего, была специфичность Эта статья очень помогла мне с этим разобраться. Суть в том, что каждому типу селектора (элемент, класс, идентификатор) присваивается вес, и если элемент имеет значение css с большим весом, он не будет перезаписан.

# id 0,1,0,0

.класс 0,0,1,0

р 0,0,0,1

1,0,0,0

Таким образом, не имеет значения, что говорят ваши CSS-файлы, встроенный стиль получает приоритет. Пример:

a {color: red;}                                               (0,0,0,1)
.class1 a {color: blue;}         Overwrites red               (0,0,1,1) 
#id1 a {color: green;}           Overwrites blue              (0,1,0,1) 
#id1 .class1 a {color: yellow;}  Overwrites green             (0,1,1,1) 
#id2 a {color: red;}             Overwrites green, NOT yellow (0,1,0,1) 
#id1 #id2 a {color: black;}      Overwrites yellow and red    (0,2,0,1) 

Я бы еще прочитал статью. Дважды.

Третья вещь, которую нужно изучить, - это как поддерживать предыдущие браузеры (например, IE6) и ошибки, с которыми они будут мешать вам. Я фанат этого сайта: http://www.positioniseverything.net/ Они наглядно и наглядно охватывают множество ошибок браузера, с которыми вы столкнетесь при реализации кросс-браузерной поддержки с помощью CSS.

Некоторые ошибки, с которыми вы, вероятно, столкнетесь в IE6:

7 голосов
/ 10 июля 2010

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

Для начала я нахожу написание CSS в редакторе, таком как Notepad ++ может помочь, поскольку подсветка синтаксиса может выявлять неприятные мелкие ошибки по мере продвижения.

Я также использую Firefox для начального тестирования и проверяю, установлен ли DOCTYPE, как предложено выше.

Я также использую отличный плагин Firefox под названием Firebug , который позволяет вам проверять DOM-элементы страницы и менять их CSS на месте, чтобы сразу понять, как будет выглядеть CSS, среди многих других функций.

Тогда я гарантирую, что HTML и CSS действительны в соответствии со стандартами W3C.Это можно сделать в Интернете по адресу http://validator.w3.org/ и http://jigsaw.w3.org/css-validator/ или с помощью другого плагина Firefox под названием HTML-валидатор .

Кроме того, я обнаружил, что когда я хочудля манипулирования страницей в Javascript я обнаружил, что использование инфраструктуры Javascript jQuery чрезвычайно полезно, абстрагируясь от особенностей HTML / DOM / CSS и позволяя хорошо протестировать кросс-браузерную совместимость.

Возможно, взгляните и на CSS-фреймворк.Они испытали и протестировали стили CSS для многих распространенных ситуаций макета.Я слышал, что Frame рекомендуется, и выглядит хорошо для меня.

Я обнаружил, что с одним большим CSS-файлом трудно управлять и читать.Но я был обеспокоен тем, что разбиение файла на более мелкие части (например, один файл CSS на страницу) замедлит загрузку страницы.Решение было использовать Minify .Он позволяет использовать CSS-файлы как один файл, а также «сжимать» результат, чтобы удалить лишние интервалы и т. Д. Он довольно прост в использовании, а также устраняет проблемы, когда браузеры кэшируют старые CSS-файлы сайта.

7 голосов
/ 10 июля 2010

Я занимаюсь веб-работой более 12 лет. Я пережил макеты таблиц, фреймы, DHTML, XHTML, CSS, Ajax, ... Я помню, когда впервые увидел CSS, я подумал: «WTH - это беспорядок? Год спустя я понял, что изучаю это, и действительно вы можете сделать некоторые действительно мощные вещи с этим. Но чтобы учиться и учиться этому хорошо, потребуется время и самоотдача.

Несколько советов, используйте сброс CSS, как Эрик Майер. http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/. Это нейтрализует большую часть форматирования в браузере, поэтому вы начинаете с чистого листа, но не так много накладных расходов, как при других перезагрузках.

Убедитесь, что у вас правильно сформированный документ HTML / XHTML, с нужным DOCTYPE вверху. Различные браузеры будут отображать страницы по-разному в соответствии с разными DOCTYPE.

CSS - это другой способ мышления. Если раньше вы, возможно, располагали графику в этом блоке, вдруг вы думаете о слоях и фонах. Может быть, графика вообще не в блоке, но имеет отступы и само фоновое изображение. Требуется время, чтобы увидеть вещи по-другому.

И, наконец, я признаю, что через все эти годы я все еще вернусь к таблицам для макетирования большинства моих форм. CSS это здорово, но это не Святой Грааль. Будь практичным. Возможно, вы захотите посмотреть первую часть http://developer.yahoo.com/yui/theater/video.php?v=crockonjs-4, где Крокфорд обрисовывает в общих чертах историю этих веб-стандартов, таких как HTML и CSS, и того, что он видит в проблемах с ними.

3 голосов
/ 10 июля 2010

У меня была похожая проблема 2 года назад.Я прочитал спецификацию CSS 2.1 (бесплатную загрузку с W3C) - ее было сложно прочитать - и загружал туда-сюда FF для тестирования, но это действительно укрепило мое понимание CSS (что в сочетании с проектами, включающими CSS чуть позже).Большинство продаваемых книг по CSS слишком практичны, чтобы глубоко понять (что вы можете свободно применять в своих концепциях)

1 голос
/ 10 июля 2010

Я взял этот класс онлайн - http://www.sitepoint.com/courses/css-live

И это было удивительно.Это довольно дешево и дает очень хорошее понимание CSS

1 голос
/ 10 июля 2010

Вы должны ознакомиться с Учебным планом по веб-стандартам Opera * .Есть несколько отличных статей по CSS.По крайней мере, прочитайте Введение Криса Хайльмана.

1 голос
/ 10 июля 2010

CSS труден, как ад, поэтому не ожидайте чего-то волшебного; вещь, которую я бы предложил, это каркас: http://articles.sitepoint.com/article/wire-frame-your-site

0 голосов
/ 25 октября 2010

Если вы не до конца понимаете язык CSS, вы напрасно потратите кучу времени.Программирование занимает достаточно много времени !!

Я не рекомендую начинать изучать CSS, посещая веб-сайты.Сначала вам нужен прочный фундамент.Для этого я рекомендую CSS Mastery от Энди Бадда.Это быстрое чтение (прочитайте его от корки до корки), и хорошее руководство после этого.В книге есть пример, который мог бы помочь вам написать эту форму входа (очень гибко) всего за 5 минут.

Далее вам потребуется сброс CSS и база:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...