<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>超文本标记语言 - DEVNEW.ORG</title>
<link>https://devnew.org/</link>
<atom:link href="https://devnew.org/html/rss.xml" rel="self" type="application/rss+xml" />
<language>ru</language>
<description>超文本标记语言 - DEVNEW.ORG</description><item>
<title>EspoCRM 9.3.0客户及销售管理系统</title>
<guid isPermaLink="true">https://devnew.org/zh/html/html-script/1722-espocrm-930-sistema-upravlenija-klientami-i-prodazhami.html</guid>
<link>https://devnew.org/zh/html/html-script/1722-espocrm-930-sistema-upravlenija-klientami-i-prodazhami.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 脚本</category>
<description><![CDATA[<p>用于管理客户、销售、请求和业务流程的现代开源 CRM 系统。该系统允许您集中存储有关客户和公司的信息、控制经理的工作并自动化基本销售流程。</p> <p><b>主要功能</b></p> <ul> <li><b>客户管理</b> - 联系人、公司和潜在客户的统一数据库。</li> <li><b>销售和交易</b> - 在销售渠道的所有阶段创建和维护交易。</li> <li><b>请求和申诉</b> - 处理传入请求并监控其状态。</li> <li><b>任务和日历</b> - 安排会议、通话、任务和其他活动。</li> <li><b>互动历史记录</b> - 保存与客户的通信、通话、会议和其他操作。</li> <li><b>电子邮件</b> - 直接从 CRM 处理电子邮件。</li> <li><b>报告</b> - 销售、经理活动和关键业务指标的分析。</li> <li><b>自动化</b> - 设置自动操作和业务流程。</li> <li><b>界面定制</b> - 能够根据公司的任务调整字段、实体、角色和访问权限。</li> <li><b>API 和集成</b> - 连接网站、在线商店和第三方服务的能力。</li> <li><b>多语言</b> - 适合与使用不同语言的客户合作的公司。</li> </ul> <p><b>EspoCRM 适合什么</b></p> <p>EspoCRM 可用于<b>销售部门、服务公司、在线商店、建筑公司、IT 公司和其他需要系统化与客户合作的组织</b>。</p> <p>CRM 有助于用单一系统替换不同的表格和记录，经理可以在其中查看有关客户、当前交易、任务和通信历史记录的信息。</p> <p><b>好处</b></p> <p><b>EspoCRM 9.3.0</b>可以安装在自己的服务器上，这使得公司可以独立控制数据和系统设置。借助开源代码和 API，CRM 可以适应特定的业务流程并与现有网站或其他服务集成。</p> <p><b>EspoCRM 是一种在一个系统中集中管理客户、销售和业务流程的工具。</b></p>]]></description>
</item><item>
<title>在线电影网站 - 在 DLE 16.1 上构建 v4.2</title>
<guid isPermaLink="true">https://devnew.org/zh/html/html-script/1233-sajt-kino-onlajn-sborka-v42-na-dle-161.html</guid>
<link>https://devnew.org/zh/html/html-script/1233-sajt-kino-onlajn-sborka-v42-na-dle-161.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 脚本</category>
<description><![CDATA[<p>安装和初始设置说明，位于存档内。</p> <p>构建电影网站，脚本已完全配置为包含电影和电视剧的网站。</p> <p>所有必需的模块均已安装，类别、附加字段和其他点均已指定。结果是一个成熟的电影网站，可以在线观看并能够通过 torrent 下载电影。</p> <p>设置一个演示模板和几篇演示文章。您可以在管理面板中进行其他设置。</p> <p>存档内的说明。</p>]]></description>
</item><item>
<title>第 12 课。什么是 CSS 精灵、服务和精灵生成器</title>
<guid isPermaLink="true">https://devnew.org/zh/html/learn-html/1242-urok-12-chto-takoj-css-sprajty-servisy-i-generatory-sprajtov.html</guid>
<link>https://devnew.org/zh/html/learn-html/1242-urok-12-chto-takoj-css-sprajty-servisy-i-generatory-sprajtov.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 教程</category>
<description><![CDATA[<p>让我们仔细看看 css sprites 这样一个有趣的工具。许多经验丰富的布局设计师和网站管理员都清楚这种简单技术的优点。使用精灵的积极一面是，通过减少单个图像的数量，可以显着减少页面加载时间。在现代布局标准中，习惯上将小图标和主题图像分组到特殊的图像集合中。简单来说，精灵就是包含一组主题小图片的图片。</p> <p>这样，当我们对小图像进行分组时，我们就可以减少对服务器的请求数量。我们的页面仅加载一张图像，而不是 30 张小图像。这显着提高了加载速度。</p> <p><span>简而言之：CSS Sprites 是一种将多个图像组合到单个文件中的工具，用于网站上以显着提高性能。考虑到您要创建大图像而不是处理小图像，</span>Sprite 的概念可能看起来有点误导。</p> <p><span>总而言之：术语“精灵”来自视频游戏中最常使用的计算机图形技术。 这个想法是将图像存储在内存中，然后仅显示该图像的一部分，这比获取新图像更快。 <br></span></p> <p><span>CSS Sprites 几乎是精确的理论：获取图像一次，移动背景，然后只显示其中的一部分。 这可以减少检索多个图像时的开销。</span></p> <p><span>互联网上有大量用于创建精灵的服务。您只需在搜索引擎中输入适当的查询即可。如果您懒得搜索，这里有一些有关此主题的热门资源。 <a href="https://www.toptal.com/developers/css/sprite-generator" rel="external noopener">顶级精灵生成器</a>、<a href="https://ru.inettools.net/image/generator-css-spraytov" rel="external noopener">inettools 精灵生成器</a>。假设您已经剪切了模板，选择了所有小图标，并用它创建了一个精灵，接下来做什么？<br><br></span></p> <h2>如何使用精灵中的图标</h2> <p>现在让我们看看使用精灵的过程。</p> <ul> <li>让我们创建一个通用类，例如，将其命名为.sprite，其背景就是这张图像，该图像是使用 sprite.png 生成器创建的。对于同一个类，我们将设置高度和宽度，如果它们大小相同，这将是精灵图标的高度和宽度。 </li> <li>对于需要使用此图标的块，请使用 css 属性 <em><strong>background-position</strong></em> 将背景偏移设置为所需的量。 <a href="https://devnew.org/learn-html/652-urok-11-fon-sajta-s-pomoschju-css-svojstvo-background.html">有关背景的更多信息</a>请参阅上一篇文章。</li> </ul> <p>示例：</p> <pre><code class="hljs css"><span class="hljs-class">.sprite</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">宽度</span>：<span class="hljs-value"> <span class="hljs-number">30 像素</span></span></span>；</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">高度</span>：<span class="hljs-value"> <span class="hljs-number">30 像素</span></span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">背景</span>：<span class="hljs-value"> <span class="hljs-function">网址</span>(<span class="hljs-string">"/assets/img/sprite.png"</span>)</span></span>;{{HTML 85}}<br><span class="hljs-rules"><span class="hljs-rule">}</span></span><br><span class="hljs-class">.sprite-icon1</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">背景位置</span>：<span class="hljs-value"> <span class="hljs-number">0</span> -<span class="hljs-number">80 像素</span></span></span>；</span><br><span class="hljs-rules"><span class="hljs-rule">}</span></span></code></pre> <p><span><b><span style="color:rgb(53,152,219);"><br>干得好</span></b></span></p>]]></description>
</item><item>
<title>第 11 课。使用 CSS 的网站背景。背景属性</title>
<guid isPermaLink="true">https://devnew.org/zh/html/learn-html/1251-urok-11-fon-sajta-s-pomoschju-css-svojstvo-background.html</guid>
<link>https://devnew.org/zh/html/learn-html/1251-urok-11-fon-sajta-s-pomoschju-css-svojstvo-background.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 教程</category>
<description><![CDATA[<div class="entry-content"> <div class="entry-content"> <p>Чтобы придать любой html-странице свой стиль и индивидуальность, активно используют фоны для элементов и страницы в целом. За этот момент оформления отвечает целый раздел css-свойства, которые начинаются со слова <strong>background</strong>.</p> <h2>Как задать цвет и изображение фона сайта</h2> <p>Для задания цвета фона используют свойство <strong><em>background-color</em></strong>, оно принимает значения в шестнадцатеричном формате цвета, в формате RGB, задание цвета при помощи ключевых слов.</p> <p>Чтобы использовать в качестве фона сайта изображения, применяют свойство <strong><em>background-image</em></strong>, где указывают ссылку на файл. Можно использовать одновременно и вариант с цветом фона, и с изображением. Тогда изображение накладывается поверх фона определенного цвета.</p> <p>Теперь поговорим о том, как регулировать повторение фонового изображения, как растянуть его на весь экран и т.д. Свойство, которое отвечает за повтор фона, называется <em><strong>background-repeat</strong></em>. Оно принимает четыре значения. В качестве значения по умолчанию принимается repeat (повторять по вертикали и горизонтали). Три других значения:</p> <ul> <li>repeat-x - повторяет изображение по горизонтали</li> <li>repeat-y - повторяет изображение по вертикали</li> <li>no-repeat - не повторяет изображение совсем</li> </ul> <p>Для задания размера фонового изображения сайта используют свойство <strong><em>background-size</em></strong>, оно принимает значения в процентах, пикселях и слово auto. Имеет два значения через пробел. Первое значение отвечает за растяжение по горизонтали, второе по вертикали. Если первое значение задано (например, 100%), а второе значение выставлено auto, то фон по горизонтали растянется на весь размер блока, а по вертикали подгоняет высоту для данной ширины. Есть еще два значения для этого свойства (cover и contain). Cover изменяет размеры изображения так, чтобы блок был полностью закрыт картинкой, а contain так, чтобы картинка поместилась в блок целиком. Cover и contain задаются по одному, через пробел уже ничего писать не нужно.</p> <p>Пример. Зададим цвет фона, его изображение без повтора и растянем его по ширине и высоте:</p> <pre><code class="hljs css"><span class="hljs-class">.block</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">background-color</span>:<span class="hljs-value"> <span class="hljs-hexcolor">#eee</span></span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">background-image</span>:<span class="hljs-value"> <span class="hljs-function">url</span>(<span class="hljs-string">"/assets/img/image.png"</span>)</span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">background-repeat</span>:<span class="hljs-value"> no-repeat</span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">background-size</span>:<span class="hljs-value"> <span class="hljs-number">100%</span> <span class="hljs-number">100%</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule">}</span></span></code></pre> <h3>Положение фонового изображения, background-position</h3> <p>Немного подробнее остановимся на работе с фоновым изображением, которое не нужно повторять. Для регулирования нахождения этого изображения внутри блока, которому мы задаем фон, используется CSS-свойство <em><strong>background-position</strong></em>. Это свойство принимает два значения через пробел. Первое определяет положение по оси x (горизонтали), второе по оси y (вертикали).</p> <p>Единицы измерения этих двух величин проценты и пиксели. Еще они принимают значения top, bottom, left, right, center. Значения для оси x, естественно, left, right, center. Значения для оси y - top, bottom, center. Единицы измерения, значения, пиксели и проценты можно комбинировать между собой в произвольном формате. В примере ниже зададим позиции для фонового изображения. В первом случае будет изображение по центру в процентах. Во втором случае изображение в правом нижнем углу блока. В третьем случает изображение сдвинуто на 50 пикселей слева и на 100 пикселей сверху. Пример:</p> <pre><code class="hljs css"><span class="hljs-class">.block1</span> <span class="hljs-rules">{<span class="hljs-rule"><span class="hljs-attribute">background-position</span>:<span class="hljs-value"> <span class="hljs-number">50%</span> <span class="hljs-number">50%</span></span></span>;<span class="hljs-rule">}</span></span><br><span class="hljs-class">.block2</span> <span class="hljs-rules">{<span class="hljs-rule"><span class="hljs-attribute">background-position</span>:<span class="hljs-value"> right bottom</span></span>;<span class="hljs-rule">}</span></span><br><span class="hljs-class">.block3</span> <span class="hljs-rules">{<span class="hljs-rule"><span class="hljs-attribute">background-position</span>:<span class="hljs-value"> <span class="hljs-number">50px</span> <span class="hljs-number">100px</span></span></span>;<span class="hljs-rule">}</span></span></code></pre> <h3>Фиксим фонового изображения, background-attachment</h3> <p>Иногда для создания визуальных эффектов нужно, чтобы фон при прокрутки не уезжал вместе с просмотренной частью страницы, а оставался на месте. Это будет создавать интересный эффект параллакса.</p> <p>Для фиксации фона используется css-свойство<em><strong> background-attachement</strong></em>. Оно принимает два значения, scroll - значение по умолчанию, прокрутка вместе со всем остальным содержимым, fixed - фон остается на месте при прокрутке.</p> <h2>CSS-свойство background</h2> <p>Чтобы обобщить все вышеперечисленные громоздкие конструкции в CSS есть свойства для их объединения, <em><strong>background</strong></em>. Оно имеет следующую структуру <em><strong>background: background-color background-image background-repeat background-position background-attachement; </strong></em>Все значения этих свойств перечисляются через пробел. Если заданы не все свойства, то они имеют значения по умолчанию. Например:</p> <pre><code class="hljs css"><span class="hljs-class">.block</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">background</span>:<span class="hljs-value"> <span class="hljs-hexcolor">#eee</span> <span class="hljs-function">url</span>(<span class="hljs-string">"/assets/img/image.png"</span>) center center</span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule">}</span></span></code></pre> </div> </div>]]></description>
</item><item>
<title>第 10 课：文本格式设置。关于文本布局您需要了解的内容</title>
<guid isPermaLink="true">https://devnew.org/zh/html/learn-html/1260-urok-10-oformlenie-teksta-chto-nuzhno-znat-o-verstke-teksta.html</guid>
<link>https://devnew.org/zh/html/learn-html/1260-urok-10-oformlenie-teksta-chto-nuzhno-znat-o-verstke-teksta.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 教程</category>
<description><![CDATA[<p>С <a href="https://devnew.org/learn-html/644-urok-3-razmetka-teksta-html-abzacy-spiski-zagolovki.html">разметкой текста</a> уже познакомились в одной из статей курса. Из этой статьи знаем, какие основные теги используются для определения контента. Следующий этап заключается в знакомстве с правилами оформления текста через стили css. Помимо базовых тегов, абзацей, заколовкой, списков часто используется тег &lt;span&gt;. По сути этот тег не несет смысловой нагрузки, он строчный, является частью текста. Используется для того, чтобы стилистически выделить несколько слов или строк. <br><b>Например :</b></p> <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-title">span</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"red-text"</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">span</span>&gt;</span><br></code></pre> <h2>Верстка текста, работа со шрифтами</h2> <p>Для задания размера шрифта, его стиля, жирности, вида используются следующие CSS свойства:</p> <ul> <li><strong>font-size</strong>. Размер шрифта, принимает значения в абсолютных и относительных единицах. К абсолютным относятся пиксели (font-size : 14px;) и пункты (font-size : 15pt;). К относительным проценты (font-size : 70%;) и em. EM обычно примерно равен длине буквы М в шрифте данного вида.</li> <li><strong>font-weight</strong>. Жирность шрифта, его начертание. Принимает как целочисленные значения (100,200,300..900), отражающие степень жирности, так и два стандартных <em>normal</em> и <em>bold</em>. Как правило, большая часть браузеров не различает степени жирности, отражает только два последних варианта начертания.</li> <li><strong>font-style</strong>. Свойство необходимое для задания нормального начертания (<em>normal</em>) или курсива (<em>italic</em>).</li> <li><strong>font-family</strong>. Используется для задания семейства шрифта или задания названия конкретно используемого шрифта, который объявлен в начеле или является стандартным. serif — без засечек, <span>sans-serif — с засечками. В примере указаны сначала название шрифта, потом его альтернативные варианты через запятую. Если первый шрифт не будет найден, применятся следующие за ним</span>: <pre><code class="hljs css"><span class="hljs-tag">body</span> <span class="hljs-rules">{ <span class="hljs-rule"><span class="hljs-attribute">font-family</span>:<span class="hljs-value"> <span class="hljs-string">"PT Sans"</span>, <span class="hljs-string">"Arial"</span>, serif</span></span>; <span class="hljs-rule">}</span></span></code></pre> </li> </ul> <h2><br>Верстка текста, цвет, высота строки, подчеркивание</h2> <p>Про стилистику шрифтов немного разобрались, теперь перейдем к не менее важным свойствам текста. Нас интересует css-свойства, отвещающие за цвет, оформление, пробелы, высота строки.</p> <ul> <li><strong>color</strong>. Цвет текста, задается с помощью RGB-формата (<em>color : rgb(255, 0, 0);</em>), шестнадцатеричного кода, который можно посмотреть в фотошопе для любого цвета (<em>color : #000;</em>) и с помощью ключевых слов (<em>color : red; color : blue;</em>). Чаще всего используют шестандцатириный код.</li> <li><strong>text-decoration</strong>. Стандартное свойство при работе со ссылками, все ссылки по-умоланию подчеркнуты. Чтобы отменить подчеркивание или задать свой вариант в качестве значений свойства принимаются. <em>text-decoration : none;</em> (отменяем все изменения),<em> text-decoration : underline; </em>(нижнее подчеркивание), <em>text-decoration : overline;</em> (верхнее подчеркивание), <em>text-decoration : line-through;</em> (зачеркнутый текст)</li> <li><strong>text-transform</strong>. Работа с регистром в строке. иногда необходимо стилистически изменить регистр текст. Часто это необходимо делать при работе с меню или нестандартным текстом. <em>text-transform : </em><span><em>lowercase;</em> (делает все символы строными), <em>text-transform : </em></span><span><em>uppercase;</em> (делает все символы прописными), text-<em>transform : </em></span><span><em>capitalize;</em> (начинает каждое слово с прописной), <em>text-transform : none;</em> (отменяет все значения)</span></li> <li><strong>white-space</strong>. Управление пробелами в тексте, принимает следующие значения. <em>nowrap </em>— текст без переносов; <em>pre</em> — как в исходном коде; <em>pre-wrap</em> — как pre, только появляются переносы, если никак не умещается в блок текст;<em> normal</em> — стандартное отображение.</li> <li><strong>text-align</strong>. Выравнивание текста внутри родительского контейнера.<em> left</em> — по левому краю; <em>right </em>— по правому краю; <em>center</em> — по центру; <em>justify</em> — по ширине.</li> <li><strong>line-height</strong>. Используется для регулирование межстрочных интервалов и, очевидно, высоты строки. Значения задаются в пикселях (line-height : 22px;), процентах (line-heigh t: 100%;), множителях, ключевых словах (line-height : normal;).<br> <div class="cont clearfix pages"> <div id="dle-content"> <div class="static-page"></div> </div> </div> </li> </ul>]]></description>
</item><item>
<title>第 9 课 CSS 课程。 CSS属性继承、级联</title>
<guid isPermaLink="true">https://devnew.org/zh/html/learn-html/1269-urok-9-uroki-css-nasledovanie-css-svojstv-kaskadirovanie.html</guid>
<link>https://devnew.org/zh/html/learn-html/1269-urok-9-uroki-css-nasledovanie-css-svojstv-kaskadirovanie.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 教程</category>
<description><![CDATA[<div class="entry-content"> <div class="entry-content"> <p>В предыдущих уроках кратко упоминали, что при знакомстве с таблицей стилей CSS, правилами, свойствами и селекторами стоит уяснить для себя правила наследования стилей. Мы знаем, что весь HTML- документ условно можно представить в виде иерархии, где одни элементы содержат в себе другие. Между элементами существуют различные связи. Они могут быть соседними, а могу иметь свзять родитель-дочерний элемент. У каждого элемента только один непосредственный родитель, это тот, который содержит его явно. Родителя нет только у корневого элемента, в Html-файлах это тег <em>&lt;html&gt;</em>.</p> <p>Свойства, которые мы прописываем для родительского элемента передаются всем его потомкам различных уровней вложенности. Чтобы переопределить эти свойства необходимо прописать их дочернему элементу. Такие стили будут иметь больший приоритет и перебьют наследуемые свойства. Наследуются, естественно, не все стили. Например, стили связанные со шрифтами. Этот механизм необходим для сокращения таблицы стилей, ведь это очень удобно, хотя есть и существенные минусы. Когда css-файл разрастается, очень трудно отследить какой родительский элемент задает некоторые стили, от этого может возникнуть путаница.</p> <h2>Какие css-свойства (стили) наследуются</h2> <p><strong><em>font-size, font-family, font-style, font-weight, color, text-align, text-transform, text-indent, line-height, letter-spacing, word-spacing, white-space, direction и т. д.</em></strong></p> <p>Наследуются еще некоторые другие свойства, но применяют такое наследование гораздо реже. Почему же в основном этому механизму подвержены стили работы с текстом. Дело в том, что у большинства сайтов есть общая типографическая концепция. Цвет текста, размер шрифта, вид шрифта, поэтому здраво задавать такие стили для документа в целом или для конкретных блоков.</p> <p>Соответственно большинство свойств, отвещающих за внешний вид сайта не наследуются. Было бы странно, если задавая фон или рамку одного элемента, мы получали такие же у всех потомков. Поэтому механизм наследования имеет продуманную суть. </p> <p>В некоторых ситуациях имеются исключения. Например, мы хотим все же получить значение для свойства от родительского элемента. Тогда можно использовать конструкцию <strong><em>свойство : inherit;</em></strong><em> </em>Для<em> </em>любого свойства<em> </em>будет принято значение от родителя. Этот механизм называется принудительное наследование.</p> <h2>Каскадирование CSS, каскадные таблицы стилей</h2> <p>Мы уже знаем о расшифровке аббревиатуры CSS, с таблицей стилей все в принципе понятно, а что же такое каскадная? Каскадирование - один из базовых механизмов при работе с css-правилами. Для одного и того же элемента может быть задано множество пересекающихся стилей. Стили могут задаваться через атрибут style, через селектор тега, класса, идентификатора, могут наследоваться от родителя и т.д. Вопрос в том, какие же стили применяться к элементу в конечном итоге, давайте разбираться.</p> <p>На выбор стилей для элемента влияют несколько факторов. Приоритет, специфичность, порядок кода. Специфичность простым языком можно описать так, чем конкретнее (точнее) задан селектор, тем он специфичнее. Т.е. чем меньше выбираем элементов для данного правила, тем специфичность больше.</p> <p>Теперь на примерах:</p> <ul> <li>Если задаем стили для элемента по одинаковому селектору, по тегу, по классу, например, то применяются те свойства, которые стоят ниже в css-файле. Ведь специфичность и приоритет в этом случае будут одинаковы. </li> <li>Если одно правило в качестве селектора использует класс, а другое тег с уточняющим классом, то применяются стили второго правила, т.к. более специфичный. Например, для <strong><em>&lt;p class="first sec"&gt;</em> </strong>зададим правила с использованием селекторов<strong> <em>.first</em> </strong>и <em><strong>p.second</strong>. </em>В конечном итоге приоритетными будут свойства второго селектора.</li> <li>Если в качестве селектора использовать идентификатор (id), то такие правила будут приоритетнее. Это происходит потому что элемент с данным Id единственный на страницу, значит специфичность его больше. </li> <li>Еще более приоритетны свойства записанные через атрибут style</li> <li>Чтобы переопределить стили через атрибут style можно использовать ключевое слово <strong><em>!important</em></strong> применимое к любому свойства. Оно переопределяет все. Однако злоупотреблять им не стоит, использовать в крайних случаях</li> </ul> <h2>Перекрестное наследование стилей</h2> <p>Далее расскажем про еще один популярный и удобный прием в задании css-свойсв. У большинства сайтов есть похожие друг на друга элементы, которые отличаются лишь незначительно. Одним из таких популярных html-элементов являются кнопки. Как правило, они имеют одинаковые отступы, размеры, закругления, тени, цвет текста и т.д. Здесь и удобно применять перекрестное наследование стилей</p> <ul> <li>Вынесем общие стили в основной класс .button</li> <li>Зададим вспомогательные стили еще в нескольких классах. Например, .button-red и .button-blue</li> <li>Пропишем у всех сходных элементов базовый класс, а следом при необходимости один или несколько вспомогательных</li> </ul> <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"catalog"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"catalog-item"</span>&gt;</span><br> ...<br> <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"button button-red"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"catalog-item"</span>&gt;</span> <br> ...<br> <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"button button-blue"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span><br><span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span></code></pre> <p>Таким образом избавляемся от лишнего кода, упрощаем себе жизнь.</p> </div> </div>]]></description>
</item><item>
<title>第 8 课：CSS 选择器。设置 CSS 规则</title>
<guid isPermaLink="true">https://devnew.org/zh/html/learn-html/1278-urok-8-selektory-css-zadaem-css-pravila.html</guid>
<link>https://devnew.org/zh/html/learn-html/1278-urok-8-selektory-css-zadaem-css-pravila.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 教程</category>
<description><![CDATA[<div class="entry-content"> <div class="entry-content"> <p>Без селекторов задавать стили для элементов html-страницы очень сложно. Необходимо было бы прописывать стили с помощью атрибута style у каждого элемента, это нерационально и долго. Существование селекторов и файла CSS существенно упрощает задачу. В этом css-уроке разберемся с тем, какие же существуют селекторы. </p> <h2>Селекторы по тегу, классу и id</h2> <p>Этот тип селекторов указывает на все элементы страницы с определенным тегом. Чтобы прописать стили по тегу, необходимо взять название тега и в фигурных свойствах отметить все свойства для них. Что касается селектора по классу, то необходимо указать сначала название класс, а потом в фигурных скобках css-свойства для него. Для селектора по id ситуация идентичная.</p> <p>Например, пропишем свойства для всех абзацей на странице и для последнего из абзацей по классу перебьем значение отступа снизу:</p> <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"content"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">p</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span> ... <span class="hljs-tag">&lt;<span class="hljs-title">p</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"last"</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span></code></pre> <p><br></p> <pre><code class="hljs css"><span class="hljs-tag">p</span> <span class="hljs-rules">{ <span class="hljs-rule"><span class="hljs-attribute">margin-bottom</span>:<span class="hljs-value"> <span class="hljs-number">10px</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">color</span>:<span class="hljs-value"> <span class="hljs-hexcolor">#000</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">font-size</span>:<span class="hljs-value"> <span class="hljs-number">14px</span></span></span>; <span class="hljs-rule">}</span></span><br><span class="hljs-class">.last</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">margin-bottom</span>:<span class="hljs-value"> <span class="hljs-number">25px</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule">}</span></span><br></code></pre> <h2>Вложенные и соседние селекторы</h2> <p>Далее поговорим о вариациях, как можно проще задавать стили для различных элементов, не прибегая к использованию классов. Часто мы должны задать стили только для вложенных элементов. Допустим определенные стили ТОЛЬКО у ссылок меню или ТОЛЬКО у абзацей определенного блока, например, блока с контентом. Для этого используется понятие вложенных селекторов. Необходимо слева направо задать порядок вложенности.</p> <p>Например, добавим стили для абзацей контентной части. В этом случае стили, которые заданы у вложенного в блок абзаца перебьют общие стили для всех абзацей. Таким образом мы не плодим лишние классы, а обходимся компактной конструкцией.</p> <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"content"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">p</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span> ... <span class="hljs-tag">&lt;<span class="hljs-title">p</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span></code></pre> <p><br></p> <pre><code class="hljs css"><span class="hljs-tag">p</span> <span class="hljs-rules">{ <span class="hljs-rule"><span class="hljs-attribute">margin-bottom</span>:<span class="hljs-value"> <span class="hljs-number">10px</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">color</span>:<span class="hljs-value"> <span class="hljs-hexcolor">#000</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">font-size</span>:<span class="hljs-value"> <span class="hljs-number">14px</span></span></span>; <span class="hljs-rule">}</span></span><br><span class="hljs-class">.content</span> <span class="hljs-tag">p</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">color</span>:<span class="hljs-value"> <span class="hljs-hexcolor">#eee</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">font-size</span>:<span class="hljs-value"> <span class="hljs-number">16px</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">matgin-bottom</span>:<span class="hljs-value"> <span class="hljs-number">15px</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule">}</span></span></code></pre> <p>Еще одна полезная фишка для удобства - это использование соседних селекторов. Слева направо через знак плюс прописываем два селектора. Стили, указанные в фигурных скобках, применяются к последнему селектору только в случае, если он стоит после первого.</p> <p>Например, для селектора по классу .sec применется отступ сверху, если он стоит после элемента с классом .first:</p> <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"content"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">p</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"first"</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">p</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"sec"</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span></code></pre> <p><br></p> <pre><code class="hljs css"><span class="hljs-class">.first</span> + <span class="hljs-class">.sec</span> <span class="hljs-rules">{ <span class="hljs-rule"><span class="hljs-attribute">margin-top</span>:<span class="hljs-value"> <span class="hljs-number">20px</span></span></span>; <span class="hljs-rule">}</span></span><br></code></pre> <p>Вложенные и соседние селекторы можно комбинировать. Если зададим в примере перед конструкцией <em>.first + .sec</em> класс <em>.content</em>, то свойства применяются для второго класса в случае, если он идет после первого и они оба лежат в блоке с классом <em>.content</em>.</p> <h2>Стили для дочерних селекторов. Чем дочерние элементы отличаются от потомков</h2> <p>С вложенностью селекторов мы познакомилимь. Понятно, что сначала идет родительский элемент (предок), а вложенные в него элементы являются потомками. При чем не важно, какой у них уровень вложенности, все равно для первого элемента они будут потомками. Чтобы задать стили для первого уровня вложенности, т.е. для непосредственного потомка, используют понятие дочернего селектора. Для этого используют символ <em>&gt;, </em>он указывает на дочерний селектор.</p> <p>В данном примере стили применяются только для элемента <em>span</em> вложенного непосредственно в <em>.content,</em> а для <em>span</em> внутри абзаца не применяются.</p> <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"content"</span>&gt;</span> <br> <span class="hljs-tag">&lt;<span class="hljs-title">span</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">span</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">p</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"first"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">span</span>&gt;</span>...<span class="hljs-tag">&lt;<span class="hljs-title">span</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">p</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"sec"</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span><br></code></pre> <p><br></p> <pre><code class="hljs ruby"><span class="hljs-prompt">.content &gt;</span> span {<br>...<br>}</code></pre> <h2>Псевдоклассы</h2> <p>Еще одно уточнение для задания стилей. Расширяет наши возможности и сужает область применения без использования дополнительных классов и конструкций. Псевдоклассы задаются через символ двоеточия. Перечислим часто используемые и кратко познакомимся с ними:</p> <ul> <li><span><strong>first-child и last-child</strong>. Задает стили для первого и последнего дочернего элемента внутри родителя. Например, стили только для первого абзаца внутри контентной области. </span> <pre><code class="hljs">p:first-child{...}<br></code></pre> </li> <li><strong>nth-of-type</strong>. Идея схожа с предыдущем псевдоклассом. Указывает на элеменет в зависимости его расположения внутри родителя. Только здесь еще точнее, может отметить не только первый и последний элементо, но и с любым порядковым номер. Синтаксис такой <strong>селектор:nth-child(значение)</strong>. Значение может быть целочисленное или заданное с помощью формулы. Например, для всех четных абзацей можно использовать такую запись: <pre><code class="hljs coffeescript"><span class="hljs-attribute">p</span>:nth-<span class="hljs-keyword">of</span>-type(<span class="hljs-number">2</span>n){...}</code></pre> </li> <li><strong>hover</strong>. С помощью этого псевдокласса можно отследить такое действие пользователя, как наведение на элемент и задать при этом стилистические особенности. Например, при наведении на ссылку уберем ее подчеркивание. <pre><code class="hljs css"><span class="hljs-tag">a</span><span class="hljs-pseudo">:hover</span> <span class="hljs-rules">{<span class="hljs-rule"><span class="hljs-attribute">text-decoration</span>:<span class="hljs-value"> none</span></span>;<span class="hljs-rule">}</span></span></code></pre> </li> <li><strong>:link, :visited и :active</strong>. Специальные псевдоклассы для работы со ссылками. С помощью них можно добавить стили непосещенных, посещенных и активных ссылок.</li> <li><strong>:focus</strong>. Псевдокласс для элементов в фокусе, например для input куда мы на данный момент вводим значение.</li> </ul> </div> </div>]]></description>
</item><item>
<title>第 7 课：CSS 基础知识、CSS 课程</title>
<guid isPermaLink="true">https://devnew.org/zh/html/learn-html/1287-urok-7-osnovy-css-uroki-css.html</guid>
<link>https://devnew.org/zh/html/learn-html/1287-urok-7-osnovy-css-uroki-css.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 教程</category>
<description><![CDATA[<div class="entry-content"> <div class="entry-content"> <p>Многим читающим эту статью уже известно, что CSS расшифровывается как каскадная таблица стилей. Надеюсь, вы хотя бы примерно предполагаете как она работает. Подключать файл стилей мы уже умеем, теперь разберемся с его начинкой. Стили отвечают за внешний вид нашей html-страницы, за ее оформление и привлекательность. Красивый и грамотный дизайн — один из основных факторов успеха и популярности вашего ресурса, помимо контента. </p> <p>CSS-файл состоит из простейших конструкций. Основу его составляют селекторы и свойства этих селекторов. Селектор — это элемент над которым мы хотим произвести внешние изменения, а свойства — как раз те самые изменения элемента, его цвет, размеры, расположение и т.д. Если представить, что html-страница это холст, то каждый элемент картины является селектором, а вот свойства как раз краски для придания жизни.</p> <h2>CSS правила</h2> <p>Теперь понятно, что весь файл стилей с расширением .css состоит из набора так называемых <em>правил</em>. Правило — это совокупность селектора и свойств. Пример двух правил для заголовка h1 и всех блоков div на странице представлен ниже, именно из таких конструкций состоит весь файл CSS:</p> <pre><code class="hljs css"><span class="hljs-tag">h1</span> <span class="hljs-rules">{ <span class="hljs-rule"><span class="hljs-attribute">font-size</span>:<span class="hljs-value"> <span class="hljs-number">22px</span></span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">color</span>:<span class="hljs-value"> <span class="hljs-hexcolor">#000</span></span></span>; <span class="hljs-rule">}</span></span> <span class="hljs-tag">div</span> <span class="hljs-rules">{ <span class="hljs-rule"><span class="hljs-attribute">width</span>:<span class="hljs-value"> <span class="hljs-number">100px</span></span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">height</span>:<span class="hljs-value"> <span class="hljs-number">50px</span></span></span>; <span class="hljs-rule">}</span></span></code></pre> <p>В данном примере мы обращаемся к самым простым селекторам, селекторам с названием тега. Такие правила применяются ко всем тегам на странице, нет никакой избирательности или фильтрации. Можно назвать такое css-правило общим.</p> <p>Чтобы задать css-свойства для определенной группы элементов, необходимо присвоить каждому элементу группы класс. Класс устанавливается с помощью атрибута class. Например, можно объединить блоки товаров, постов, элементов меню. Все они будут иметь сходные стили, если в качестве селектора использовали название класс. Ниже конструкция каталога, для элементов каталога задаем одинаковые стили.</p> <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"catalog"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"catalog-item"</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"catalog-item"</span>&gt;</span>...<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span><br> ...<br><span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span><br></code></pre> <p>Стили для элементов каталога по установленному классу:</p> <pre><code class="hljs css"><span class="hljs-class">.catalog-item</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">width</span>:<span class="hljs-value"> <span class="hljs-number">250px</span></span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">font-size</span>:<span class="hljs-value"> <span class="hljs-number">14px</span></span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">background</span>:<span class="hljs-value"> <span class="hljs-hexcolor">#eee</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule">}</span></span></code></pre> <h2>Основные группы CSS-свойств</h2> <p>Все css-свойства условно можно разбить на несколько групп, официально никакой градации не предусмотрено, но для новичков удобнее будет ориентироваться. </p> <ul> <li> <h3>Внешний вид текста</h3> <p>К этой группе css-свойств можно отнести <strong>font-size</strong> (размер шрифта), <strong>text-decoration</strong> (при значении underline имеем подчеркнутый текст), <strong>font-weight</strong> (жирность шрифта, bold - жирный), <strong>font-style</strong> (стиль текста), <strong>color</strong> (цвет текста) и т.д.</p> </li> <li> <h3>Размеры и отступы</h3> <p>В верстке существуют два основных, самых важных понятия типа отображения элемента. Элемент может быть блочный и строчный, другие способы отображения не так важны. Блочные элементы могут иметь размеры (высоту <strong>height</strong> и ширину <strong>width</strong>), отступы внешние (<strong>margin</strong>) и внутренние (<strong>padding</strong>). Свойства css для задания размеров и отступов элементов подробно описаны в так называемой Блочной модели.</p> </li> <li> <h3>Сетки</h3> <p>Все видели как выглядит типичный сайт? Сначала идет header, затем основной блок с контентом и сайдбаром, заканчивается страница обычно футером. Такое расположение элементов относительно друг друга называется построением html-сеток. Подробнее о сетках поговорим в следующих уроках верстки. Пример простейшей сетки ниже с помощью<strong> float</strong> (выравнивания элементов):</p> <pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"header"</span>&gt;</span>Голова<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"left-column"</span>&gt;</span>Контент<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"right-column"</span>&gt;</span>Сайдбар<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"footer"</span>&gt;</span>Подвал<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span><br></code></pre> <p>Стили для сетки:</p> <pre><code class="hljs coffeescript">div {<br> margin-<span class="hljs-attribute">bottom</span>: <span class="hljs-number">10</span>px;<br> <span class="hljs-attribute">padding</span>: <span class="hljs-number">10</span>px <span class="hljs-number">20</span>px <span class="hljs-number">10</span>px <span class="hljs-number">20</span>px;<br> background-<span class="hljs-attribute">color</span>: <span class="hljs-comment">#dff0d8;</span><br><span class="hljs-comment">}</span> .left-column {<br> <span class="hljs-attribute">width</span>: <span class="hljs-number">60</span>%;<br> min-<span class="hljs-attribute">height</span>: <span class="hljs-number">90</span>px;<br> background-<span class="hljs-attribute">color</span>: <span class="hljs-comment">#fcf8e3;</span><br><span class="hljs-comment"> float: left;</span><br><span class="hljs-comment">}</span> .right-column {<br> <span class="hljs-attribute">width</span>: <span class="hljs-number">25</span>%;<br> min-<span class="hljs-attribute">height</span>: <span class="hljs-number">90</span>px;<br> background-<span class="hljs-attribute">color</span>: <span class="hljs-comment">#d9edf7;</span><br><span class="hljs-comment"> float: right;.</span><br><span class="hljs-comment">}</span> .footer {<br> <span class="hljs-attribute">clear</span>: both;<br>}</code></pre> </li> <li> <h3>Позиционирование в CSS</h3> <p>Позиционирование в css используется для создания эффекта многослойности, чтобы элементы могли накладываться друг на друга, всплывать. Для задания одного из режимов позиционирования используют свойство <strong>position</strong> и набор из управленческих свойств<strong> top, left, right, bottom</strong>. Они задают соответствующие отступ для элемента. Популярным значение для свойства position является absolute. Оно исключает элемент из потока, накладывает на страницу сверху. Место выдернутого элемента занимают следующие по порядку блоки. Для задания приоритета позиционирования, порядка наложения используют свойство <strong>z-index</strong> с целочисленными значениями.<strong><br></strong></p> </li> <li><strong>Дизайн (цвета, тени, градиенты, фон)</strong></li> <li><strong>Прочее</strong></li> </ul> <p><span style="font-size:18px;"><b>Что значит каскадность стилей CSS</b></span></p> <p>Пришло время разобраться с понятием каскадности стилей. Этот мощный механизм основывается на комбинировании всех CSS-правил, которые относятся к одному и тому же элементу. Например, мы назначаем общие правила для всех абзацей на странице. Затем добавляем к одному из абзацей класс, для класса тоже задаем свои свойства. Браузер соберет все правила для данного элемента в соответствии с приоритетом и применит их. В этом и заключается каскадность.</p> <p>Понятие каскадности тесно связано с переопределением стилей. Оно происходит, когда в файле стилей для одного и того же элемента задаем одинаковое свойство с разными значениями. Стиль переопределиться в соответствии с приоритетом. Кратко можно описать приоритеты следующим образом в порядке убывания:</p> <ol> <li>Атрибут style внутри тега, самый высокий приоритет</li> <li>Правила для селектора c id</li> <li>Правила для селектора с классом</li> <li>Правила для селектора с тегом</li> </ol> <p>Профессиональными разработчиками часто используется прием нескольких классов у одного элемента. Таким образом не обязательно прописывать свойства для каждого из них, достаточно добавить к нужным блокам класс и прописать свойства для этого класса.</p> <h2>Наследование стилей css</h2> <p>Еще одно важное понятие CSS — это наследование. Все стили определенные для родительского элемента будут приняты и дочерними. Если прописать размер и стиль шрифта, цвет у элемента ul для меню, то все дочерние li примут эти значения. Есть свойства, которые не наследуются. К ним относятся свойства из категории размеры и отступы, позиционирование.</p> </div> </div>]]></description>
</item><item>
<title>课 6. 表格的布局</title>
<guid isPermaLink="true">https://devnew.org/zh/html/learn-html/1296-urok-6-verstka-form.html</guid>
<link>https://devnew.org/zh/html/learn-html/1296-urok-6-verstka-form.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 教程</category>
<description><![CDATA[<p>Для связи между страницей и сервером в Html есть специальный элемент, это форма. С помощью формы мы передаем набор данных, информации, как угодно, а на сервере эти данные обрабатываются. Формы на html-страницах используются для различных целей, для регистрации, обратной связи, заполнения информации в личном кабинете. Собственно понятно, что ни один сайт в сети так или иначе без форм не обходится, поэтому важно научиться верстать формы и разобраться что к чему.</p> <p>Для создания формы используется тег <strong>&lt;form&gt;</strong> с двумя важными атрибутами. Это <strong>action</strong> и <strong>method</strong>. Первый содержит адрес страницы, куда мы передаем информацию, второй метод отправки. С атрибутом action все теоретически понятно, а вот по Method пройдемся подробнее. Два самых популярных значения атрибута <span>— это get и post. В первом случае данные передаются в строке запроса через так называемые get-параметры. Мы видим их в адресной строке после знака вопроса, используют для поиска информации по сайту, например. Во втором случае, когда ссылка на результат отправки формы нам не нужна, передаем большое количество информации.</span></p> <h2><span>Поля формы, верстка формы</span></h2> <p><span>С формой разобрались, теперь о передачи информации через форму. Чтобы передать какие-то данные, нужен способ, чтобы эти данные ввести. Чаще всего в формах используется тег <strong>&lt;input&gt;</strong>, он одиночный, имеет два обязательных атрибуты <strong>type</strong> и<strong> name</strong>. Они основные, задают тип поля (текст, переключатель, список, пароль) и его имя для дальнейшей обработки на сервере.</span></p> <p><span>Еще один важный атрибут для тега &lt;input&gt; — это атрибут <strong>value</strong>, который содержит значение по умолчанию. То, что видит пользователь перед началом ввода, может ввести свое значение или оставить заполненное, если оно его устраивает.</span></p> <p><span>Чтобы создать подсказку для пользователь и смысловую связь поля и текста используют тег <strong>&lt;label&gt;</strong>. Обернув этим парным тегом текст и поле, вы создаете конструкцию подпись-поле, которая связана не только визуально, но и логически. Если подпись и поля не стоят рядом, обернуть их вместе не получается, то можно использовать простую конструкцию для связи. У &lt;input&gt; добавляем уникальный id, а у &lt;label&gt; добавляем атрибут for с названием этого Id. Таким образом создаем свзять между этими элементами. </span></p> <p><span>С полями разобрались, теперь перейдем к вопросу, как отправить информацию из формы? Для этого необходимо добавить кнопку отправки формы. Это тег &lt;input&gt; с атрибутом <strong>type="submit"</strong>. Чтобы придать кнопке привычный вид, добавляем атрибут value с названием кнопки, например, <strong>value="Отправить"</strong>. Пример простейшей формы:</span></p> <pre><code class="hljs xml"><span class="hljs-doctype">&lt;!DOCTYPE html&gt;</span><br><span class="hljs-tag">&lt;<span class="hljs-title">html</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">head</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">meta</span> <span class="hljs-attribute">charset</span>=<span class="hljs-value">"utf-8"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">title</span>&gt;</span>Форма<span class="hljs-tag">&lt;/<span class="hljs-title">title</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">head</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">body</span>&gt;</span><br><span class="hljs-tag">&lt;<span class="hljs-title">h1</span>&gt;</span>Форма входа<span class="hljs-tag">&lt;/<span class="hljs-title">h1</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">form</span> <span class="hljs-attribute">action</span>=<span class="hljs-value">"http://devnew.org"</span> <span class="hljs-attribute">method</span>=<span class="hljs-value">"post"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">label</span> <span class="hljs-attribute">for</span>=<span class="hljs-value">"login-field"</span>&gt;</span>Ваш логин<span class="hljs-tag">&lt;/<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text"</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"login"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"login-field"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">br</span>/&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">label</span> <span class="hljs-attribute">for</span>=<span class="hljs-value">"password-field"</span>&gt;</span>Ваш пароль<span class="hljs-tag">&lt;/<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"password"</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"password"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"password-field"</span>&gt;</span> <br> <span class="hljs-tag">&lt;<span class="hljs-title">br</span>/&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"submit"</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"Отправить"</span>&gt;</span><br><span class="hljs-tag">&lt;/<span class="hljs-title">form</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">body</span>&gt;</span><br><span class="hljs-tag">&lt;/<span class="hljs-title">html</span>&gt;</span></code></pre> <h3>Вот что получаем в итоге:</h3> <p><a href="https://devnew.org/uploads/posts/2023-10/snimok-jekrana-2023-10-24-200559.webp" class="highslide"><img src="https://devnew.org/uploads/posts/2023-10/thumbs/snimok-jekrana-2023-10-24-200559.webp" style="float:left;" alt=""></a> </p> <p><br></p> <h2><br><br><br>Верстка сложных элементов форм</h2> <p>Перейдем к более сложным элементам формы, которые тоже очень часто используются для отправки информации. Иногда необходимо использовать многострочные поля для ввода информации, например, комментариев к записи. Для этого используется тег <strong>&lt;textarea&gt;Значение поля&lt;/textarea&gt;</strong>. Имя задается аналогично атрибутом name, значение по умолчанию пишется между тегами. Есть еще два важных атрибута для задания высоты поля в строках (rows) и ширины в символах (cols).</p> <p>Для создания элемента-галочки (чекбокса) используется уже известный тег &lt;input&gt; с атрибутом <strong>type="checkbox"</strong>. Данный элемент формы передает одно из значений, да или нет. Если да, то на сервер передается имя атрибута, если нет, то ничего. Чтобы по умолчанию галочка уже стояла прописываем атрибут checked.</p> <p>Если необходимо выбрать один из вариантов среди множества, используют элемент-переключатель. Опять используем тег &lt;input&gt;, но уже с другим атрибутом <strong>type="radio"</strong>. Уже понятно, что переключателей будет несколько, для полноты выбора. Атрибут name у них будет одинаковый, чтобы связать их между собой, а атрибут value у каждого свой.</p> <p>Для загрузки файлов используется наше любимое поле &lt;input&gt; с атрибутом <strong>type="file"</strong>. Чтобы передача файла работала добавьте <em>форме</em> атрибут <strong>enctype="multipart/form-data"</strong></p> <pre><code class="hljs xml"><span class="hljs-doctype">&lt;!DOCTYPE html&gt;</span><br><span class="hljs-tag">&lt;<span class="hljs-title">html</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">head</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">meta</span> <span class="hljs-attribute">charset</span>=<span class="hljs-value">"utf-8"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">title</span>&gt;</span>Сложные формы<span class="hljs-tag">&lt;/<span class="hljs-title">title</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">head</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">body</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">form</span> <span class="hljs-attribute">action</span>=<span class="hljs-value">"https://echo.htmlacademy.ru"</span> <span class="hljs-attribute">method</span>=<span class="hljs-value">"post"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">p</span>&gt;</span>Выберите один вариант ответа?<span class="hljs-tag">&lt;/<span class="hljs-title">p</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"radio"</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"question"</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"1"</span>&gt;</span><br> Ответ 1<br> <span class="hljs-tag">&lt;/<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">br</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"radio"</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"question"</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"2"</span>&gt;</span><br> Ответ 2<br> <span class="hljs-tag">&lt;/<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">br</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"radio"</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">"question"</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"3"</span>&gt;</span><br> Ответ 3<br> <span class="hljs-tag">&lt;/<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">br</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">textarea</span> <span class="hljs-attribute">rows</span>=<span class="hljs-value">"5"</span>&gt;</span>Комментарий<span class="hljs-tag">&lt;/<span class="hljs-title">textarea</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">label</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"submit"</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"Отправить"</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">form</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">body</span>&gt;</span><br><span class="hljs-tag">&lt;/<span class="hljs-title">html</span>&gt;</span></code></pre> <h3>Получаем в итоге:</h3> <p><a href="https://devnew.org/uploads/posts/2023-10/snimok-jekrana-2023-10-24-200444.webp" class="highslide"><img src="https://devnew.org/uploads/posts/2023-10/thumbs/snimok-jekrana-2023-10-24-200444.webp" style="float:left;" alt=""></a> </p>]]></description>
</item><item>
<title>第 5 课：表格布局、标签表、tr、td</title>
<guid isPermaLink="true">https://devnew.org/zh/html/learn-html/1305-urok-5-verstka-tablic-tegi-table-tr-td.html</guid>
<link>https://devnew.org/zh/html/learn-html/1305-urok-5-verstka-tablic-tegi-table-tr-td.html</link>
<dc:creator>admin</dc:creator>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
<category>HTML 教程</category>
<description><![CDATA[<div class="entry-content"> <div class="entry-content"> <p>Мы уже знаем, что самое важное, что есть на любом сайте <span>— это информация. Для грамотного представляю данных часто возникает нужда в таблицах. У тех, кто только начинает знакомиться с версткой, часто возникают трудности с версткой именно таблиц. Иногда нужно оформлять большие и сложные таблицы, их верстка сопряжена с использованием различных тегов, структура которых не всегда понятна.</span></p> <p><span>Основным тегом для верстки таблиц является тег &lt;table&gt;. Он оборачивает все содержимое и закрывается по окончанию. Все мы знаем, что у таблицы есть строки и столбцы. Для обозначения строк используем тег &lt;tr&gt;, а для столбцов тег &lt;td&gt;. Содержимое каждого столбца оборачиваем тегом td. Теги td находятся внутри тегов tr. В случае с простейшей таблицей число тегов td в каждой строке(tr) одинаково.</span></p> <p><span>Иногда в процессе верстки таблиц возникает необходимость создать заголовки столбца, для этого мы используем тег th. Этот тег аналогичен тегу td, тоже расположен внутри tr, но идеологически и стилистически отличается. По умолчанию он выделен жирно, и текст в нем </span>выравнивается по центру.</p> <p><span>Не совесем понятно? Рассмотрим таблицу из 4 строк и 2х столбцов с заголовками:</span></p> <pre><code class="hljs xml"><span class="hljs-doctype">&lt;!DOCTYPE html&gt;</span><br><span class="hljs-tag">&lt;<span class="hljs-title">html</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">head</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">meta</span> <span class="hljs-attribute">charset</span>=<span class="hljs-value">"utf-8"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">title</span>&gt;</span>Простая таблица<span class="hljs-tag">&lt;/<span class="hljs-title">title</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">head</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">body</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">table</span> <span class="hljs-attribute">border</span>=<span class="hljs-value">"1"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">th</span>&gt;</span>Заголовок 1<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">th</span>&gt;</span>Заголовок 2<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример столбца 1<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример столбца 2<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример столбца 3<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример столбца 4<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример столбца 5<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример столбца 6<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример 7<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Длинный текст 8<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span><br><span class="hljs-tag">&lt;/<span class="hljs-title">table</span>&gt;</span> <br><span class="hljs-tag">&lt;/<span class="hljs-title">body</span>&gt;</span> <br><span class="hljs-tag">&lt;/<span class="hljs-title">html</span>&gt;</span></code></pre> <p>В итоге получаем:</p> <table border="1"> <tbody> <tr> <th>Заголовок 1</th> <th>Заголовок 2</th> </tr> <tr> <td>Пример столбца 1</td> <td>Пример столбца 2</td> </tr> <tr> <td>Пример столбца 3</td> <td>Пример столбца 4</td> </tr> <tr> <td>Пример столбца 5</td> <td>Пример столбца 6</td> </tr> <tr> <td>Пример 7</td> <td>Длинный текст 8</td> </tr> </tbody> </table> <h2>Объединение ячеек в таблице по вертикали и горизонтали, верстка</h2> <p>Теперь поговорим об одном достаточно сложном и непонятном моменте в верстке таблиц. Часто нам необходимо объединить ячейки таблицы между собой по вертикали или горизонтали. Для этого используется атрибут <span><strong>colspan</strong> для ячеек таблицы td. Значения у этого атрибута в виде чисел. Если ставим цифру 2 в значение, то совмещаем по горизонтали две ячейки, текущую и ту, что справа, но в разметке правой ячейки уже быть не должно, содержимое пишем в тот td, которому задали colspan.</span></p> <p><span>Для совмещения ячеек по вертикали необходимо использовать аналогичный атрибут<strong> rowspan</strong> для тега td. Например, задаем значение 2, значит совмещаем ячейку с нижней. Не забываем удалить ту ячейку, с которой совмешаем из разметки таблицы, иначе выйдет смещение и появление лишних элементов в таблице. Почему объединение по вертикали сложнее? Ведь в разметки таблицы данных нижняя ячейка лежит в следующем теге tr, поэтому ее удаление не столь очевидно, как при объединении по горизонтали.</span></p> <p><span>Можно объединить ячейки одновременно по вертикали и горизонтали, для это задаем оба атрибута сразу. Наглядно станет понятно в примере</span>:</p> <pre><code class="hljs xml"><span class="hljs-doctype">&lt;!DOCTYPE html&gt;</span><br><span class="hljs-tag">&lt;<span class="hljs-title">html</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">head</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">meta</span> <span class="hljs-attribute">charset</span>=<span class="hljs-value">"utf-8"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">title</span>&gt;</span>Простая таблица<span class="hljs-tag">&lt;/<span class="hljs-title">title</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">head</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">body</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-title">table</span> <span class="hljs-attribute">border</span>=<span class="hljs-value">"1"</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span> <span class="hljs-attribute">colspan</span>=<span class="hljs-value">"2"</span>&gt;</span>Объединяем вправо<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span> <span class="hljs-attribute">colspan</span>=<span class="hljs-value">"2"</span> <span class="hljs-attribute">rowspan</span>=<span class="hljs-value">"2"</span>&gt;</span>Объединяем все<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример столбца 3<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span> <span class="hljs-attribute">rowspan</span>=<span class="hljs-value">"2"</span>&gt;</span>Объединяем вниз<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример столбца 5<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример столбца 6<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Текст<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">tr</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Пример 7<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Длинный текст 8<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Текст<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;<span class="hljs-title">td</span>&gt;</span>Текст<span class="hljs-tag">&lt;/<span class="hljs-title">td</span>&gt;</span><br> <span class="hljs-tag">&lt;/<span class="hljs-title">tr</span>&gt;</span><br><span class="hljs-tag">&lt;/<span class="hljs-title">table</span>&gt;</span> <br><span class="hljs-tag">&lt;/<span class="hljs-title">body</span>&gt;</span> <br><span class="hljs-tag">&lt;/<span class="hljs-title">html</span>&gt;</span></code></pre> <table border="1"> <tbody> <tr> <td colspan="2">Объединяем вправо</td> <td colspan="2" rowspan="2">Объединяем все</td> </tr> <tr> <td>Пример столбца 3</td> <td rowspan="2">Объединяем вниз</td> </tr> <tr> <td>Пример столбца 5</td> <td>Пример столбца 6</td> <td>Текст</td> </tr> <tr> <td>Пример 7</td> <td>Длинный текст 8</td> <td>Текст</td> <td>Текст</td> </tr> </tbody> </table> <h2>CSS-оформление таблиц</h2> <p>Верстать таблицы научились, теперь можно создавать таблицы с любым количеством столбцов и строк, нужно лишь корректировать необходимым образом html-разметку. Чтобы придать таблицам привычный вид, нужно знать о css-свойствах, которые полезны при верстке таблиц. </p> <p>Во-первых, таблицам можно задавать рамки. Рамку можно задать, как самой таблице, так и каждой размеченой ячейке таблицы. Но выглядят такие рамки неэстетично и непривычно, чтобы избежать просветов между рамками, используют свойство <strong>border-collapse: collapse;</strong> Оно накладывает рамки ячеек и убирает нежелательные расстояния между ними. Рамку задаем с помощью свойства <strong>border: 2px solid #000;</strong> Этим свойством и его значением задаем размер рамки в два пикселя, черного цвета, простой линией.</p> <p>С помощью рамок можно придать таблице определенный вид. Допустим, хотим расчертить таблицу только на строки или столбцы. Для этого используем css-свойства <strong>border-bottom</strong> и <strong>border-right</strong>.<strong> </strong>С помощью этих свойств задаем рамку у ячейки только с одной стороны,что расчерчивает таблицу нужным образом.</p> <p>Еще одним важным моментом в верстке таблиц становятся отступы внутри ячейки, их задаем с помощью свойства <strong>padding</strong>. Можно задать отступ только с одной стороны, для это используем одно из свойств padding-top, padding-right, padding-bottom или padding-left.</p> <p>Для выравнивания текста внутри ячейки по горизонтали используем css-свойство <strong>text-align</strong> со значениями left, center и right. Для выравнивания по вертикали подойдет свойство <strong>vertical-align</strong>. Оно имеет значения top, middle, bottom. Можно задать для ячеек и строк цвет текст (color), цвет фона (background-color), жирность текста (font-weight) и так далее. Чтобы присвоить определенные стили только для конкретной строки или ячейки целесообразно использовать классы для них, а затем писать css-свойства уже для новых классов.</p> <p>Пример css-кода для разметки простой таблицы.</p> <pre><code class="hljs css"><span class="hljs-tag">table</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">border-collapse</span>:<span class="hljs-value"> collapse</span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">border</span>:<span class="hljs-value"> <span class="hljs-number">2px</span> solid black</span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule">}</span></span><br><span class="hljs-tag">td</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">padding</span>:<span class="hljs-value"> <span class="hljs-number">5px</span></span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">padding-right</span>:<span class="hljs-value"> <span class="hljs-number">10px</span></span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">border-bottom</span>:<span class="hljs-value"> <span class="hljs-number">1px</span> solid lightgray</span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">text-align</span>:<span class="hljs-value">center</span></span>; <span class="hljs-rule">}</span></span> <span class="hljs-tag">th</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">padding</span>:<span class="hljs-value"> <span class="hljs-number">10px</span></span></span>;</span><br><span class="hljs-rules"> <span class="hljs-rule"><span class="hljs-attribute">border</span>:<span class="hljs-value"> <span class="hljs-number">1px</span> solid black</span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule">}</span></span><br><span class="hljs-tag">tr</span> <span class="hljs-rules">{</span><br><span class="hljs-rules"><span class="hljs-rule"><span class="hljs-attribute">background-color</span>:<span class="hljs-value"> <span class="hljs-hexcolor">#eee</span></span></span>;</span><br><span class="hljs-rules"><span class="hljs-rule">}</span></span></code></pre> </div> </div>]]></description>
</item></channel></rss>