Клиентская сторона: HTML, DOM и CSS? - PullRequest
0 голосов
/ 26 января 2011

Я не много работал над Client Side/Front End Приложения, и я пытаюсь прочитать о HTML, CSS and DOM, но почему-то не могу понять разницу между ними, и поэтому буду очень признателен, если кто-то сможет:

  1. Объясните мне на простом английском, как работают HTML, CSS и DOM?
  2. Как они связаны друг с другом с точки зрения технологии на стороне клиента?

Обновление Я просмотрел wikipedia статей, но не смог четко понять работу DOM.

Спасибо.

Ответы [ 7 ]

5 голосов
/ 26 января 2011

Что такое DOM?

Допустим, вы открываете веб-браузер (например, Chrome) и загружаете в него веб-страницу (например, stackoverflow.com),Теперь внутри браузера есть объект window.Этот объект представляет окно браузера.

Этот window объект имеет множество свойств (членов), наиболее важным из которых является объект document.Объект document представляет веб-страницу, которая в данный момент загружена в окно браузера.

Этот document объект является корнем дерева DOM:

http://www.w3schools.com/htmldom/htmltree.gif

Каждый блок на рисунке выше является узлом внутри дерева DOM,Узел - это объект, который «связан» с другими объектами из дерева DOM.

Программы JavaScript, связанные с веб-страницей, имеют полный доступ к каждому узлу дерева DOM.Они могут удалять узлы, добавлять новые узлы или просто манипулировать свойствами узла.


Таким образом, в браузере существуют сотни объектов.Все эти объекты связаны (как-то), и эта огромная структура взаимосвязанных объектов является DOM.

3 голосов
/ 26 января 2011

HTML - это то, что находится на вашем сайте (заголовки, списки, таблицы)

CSS это то, на что похожи эти вещи (границы, цвета, размеры шрифта)

DOM - это способ доступа к этим вещам через javascript (получение узлов, добавление новых элементов, изменение их стиля)

Вот пример того, как 3 работают вместе (кажется, не работает в ie) http://jsfiddle.net/gj9zT/

1 голос
/ 26 января 2011

HTML описывает структуру документа. Браузер анализирует HTML и строит из него внутреннее представление элементов документа, например:

document
   |
   |-body
       |
       |-div
       |   |
       |   |-p
       |     |
       |     |-"some text"
       |-div
           |
           |-...

Это внутреннее представление - DOM, объектная модель документа. Это основа для создания фактического визуального представления сайта.

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

Части DOM также доступны через API, поэтому вы можете манипулировать DOM (то есть документом), используя такой язык программирования, как Javascript.

0 голосов
/ 26 января 2011

HTML фактически является разметкой вашего DOM (объектная модель документа).Корнем документа является <html>, который содержит много уровней <div>s, <p> аграфов, <h1> заголовков и так далее.

DOM - это дерево (графическая структура) вашей HTML-разметки.У него будет «корень», в котором много «детей», у детей будут «братья и сестры» и «родители», «потомки» и «предки».Корень не имеет родителя и является предком всех узлов-потомков.например, ваш типичный HTML-документ будет структурирован следующим образом:

<!DOCTYPE html>
<html>
  <head>
    <title>Banner Example</title>
    <style type="text/css">
      #header {
        background-image: url('branding_logo.jpg');
      }

      h1 a {
        display: block;
        height: 120px;
        width: 500px;
        text-indent: -9999; /* to hide the text that would show */
                            /* over the banner */
        border: 1px solid black;
      }
    </style>
  </head>
  <body>
    <div id='header'>
      <h1><a href="/">This is a header link.</a></h1>
      <p>Here is some text.</p><p>Here is some more text.</p>
    </div>
    <div id="content">
      <p>here is a bunch of content.</p>
    </div>
  </body>
</html>

В этом случае html - это корневой узел, у которого есть два дочерних элемента: голова и тело.Голова и тело - братья и сестры.Вы можете использовать модель DOM с селекторами, чтобы выбрать, какие объекты (содержащиеся в узле) будут затронуты кодом, таким как CSS.

CSS будет принимать селекторы и стилизовать их, как указано в блоке атрибутов.Вы можете выбрать все элементы <p>, используя

p { color: red; }

Или вы можете выбрать только 'p', если это потомок div с идентификатором content:

div # content {color: black;}

CSS обычно будет стилизовать тег, используя самое конкретное описание DOM, которое может быть применено к нему.Итак, в моем приведенном выше примере HTML первый стиль CSS будет применяться ко всем p, а затем второй, более конкретный стиль будет применяться только к этому одному p в div содержимого.

По сути, чтопроисходит, если ваш браузер будет разбирать ваш HTML-код на разделы, которые позволяют выбирать их индивидуально.Эта проанализированная структура - ваша DOM.CSS использует DOM для применения стилей.jQuery делает то же самое, позволяя вам выбрать конкретный узел из DOM и динамически применять стили или действия к этому узлу на стороне клиента.

0 голосов
/ 26 января 2011

HTML (язык разметки гипертекста) - это разметка, которую мы используем для описания структуры нашей страницы.Он определяет различные конструкции, такие как <ol></ol> Упорядоченный список или <table> Таблицы и т. Д ...

HTML - это код, с которого мы начинаем, он удобочитаем (ну, в любом случае он должен быть: p) и легко сжимаемым и передаваемым.

DOM (объектная модель документа) - это структура, используемая вашим компьютером для организации страницы, отображаемой из HTML.Когда ваш компьютер разбивает ваш HTML Document , он организует его в Object Model , с которой он может более легко работать (как и вы, в javascript / css / etc ...).

CSS (каскадные таблицы стилей) описывает, как вы хотите, чтобы элементы в ваших документах выглядели.Они называются каскадными таблицами стилей, потому что они «каскадно» переходят к следующей, чтобы заполнить отверстия или переопределить стиль.CSS описывает визуальные качества объектов в DOM.

0 голосов
/ 26 января 2011

Это длинное объяснение, но я попытаюсь объяснить вкратце

CSS: Они используются для применения свойств к HTML-элементам.Если вы хотите применить общий цвет к различным элементам HTML, мы можем сделать это в CSS и применить этот класс к элементу HTML.Мы можем избежать повторения кода с помощью CSS.Мы можем достичь многих других вещей с помощью CSS.Читайте в Google

HTML: HTML - это не что иное, как различные типы тегов, которые мы используем для отображения таких элементов, как таблицы, div, p, ul, li и т. Д.

DOM: DOM - это не что иное, как отношение между элементами html, мы обычно используем javascript для манипулирования DOM, например, для изменения высоты, перемещения из одного места в другое ...

Будет много ссылокв гугле лучше объяснения.

0 голосов
/ 26 января 2011
...