Ilma kaskaadi stiilide lehtedeta kuvatakse vormi elemendid vastavalt kasutatud brauserile ja operatsioonisüsteem vaikeseaded. aga cSS-i kasutamine. Võimaldab teil luua vorme, mis vastavad teie saidi kujundusele.
Otsus
Vormi elemendi stiil, nagu iga teine \u200b\u200bHTML-element, saab seadistada CSS-i abil.
Joonis fig. 6.1. Vaikimisi vormi vaade Firefoxi brauseris
Pildil joonis fig. 6.1 Vorm on kaunistatud vastavalt Firefoxi brauseri vaikeseadetele Windows XP all. Selle liigid muutuvad erinevate brauserite vaatamise ajal erinevate platvormide all. Allpool on tüüpiline vorm:
"http://www.w3.org/1999/xhtml"lang \u003d "en-USA"\u003e
Selle vormi välimust saab muuta elementide stiilide kirjutamise teel:
vorm (piir: 1px punkti #aaaaa; polsterdamine: 0.5em;) moodustavad div (marginaalne allosas: 1EM;) sisend (värv: # 00008b; taustavärv: # ADD8E6; piir: 1px tahke # 00008b;) Laius: 100px; Värv: # 00008B; taustavärv: # ADD8E6; piir: 1px tahke # 00008b;) Textarea (laius: 200px; kõrgus: 40px; Värv: # 00008b; taustvärv: 1px tahke aine # 00008b;)
Nüüd kujuneb vorm joonisel fig. 6.2.
Arutelu
Nagu te ilmselt arvasite, näitavad HTML-elementide stiilide seadistuspunktid vorm, sisend, tekst ja valige Neid rakendatakse igale nende eksemplarile, mis asub leheküljel, kus stiililaua fail on seotud. Väljade väljade kujundamiseks saame kasutada palju erinevaid omadusi. CSS-i kasutamine saate hallata peaaegu kõiki välja aspekte
:
Nõukogu
Vormid ja taustavärv. Osa teie saidi külastajatest võib eristada värve halvasti ja osa võib kasutada häälebrauserit. Seetõttu ei tohiks värvid kunagi olulisi funktsioone täita - näiteks juhiseid nagu "kollased väljad on kohustatud täitma" peaks olema täieliku keelu all.
Mõtle omaduste väärtus üksikasjalikumalt:
Laboratoorse töö number 4
Cascading stiilis tabelid (CSS)
töö eesmärk
Kohtuge kaskaadide tabelite kontseptsioonile stiilid CSS., samuti nende kasutamise praktiliste oskuste saamine.
Teoreetiline teave.
Internet Explorer. pakub teie stiili, mida nimetatakse vaikimisi. See stiil hõlmab valget puhast tausta, musta fondi värvi, kõik viited on allajoonitud ja sinised jne, mis siis, kui sa ei meeldi see kõik? Sa juba teate, kuidas vahetada erinevaid atribuute. Isegi kui samad objektid on samad, te teate juba klasside rakendamist. Kuid on veel üks võimalus. Kogu dokumendi stiili täpsustamiseks kasutatakse nn hierarhilise stiili tabelite (Cascade stiilis lehed - CSS), mis on erinevate objektide omaduste kogum. Midagi, mida nad sarnanevad klassidesse, kuid kui klass on dokumendi sees loodud ja seda saab rakendada, ja võib-olla mitte, siis CSS-i, kui see on ühendatud, mõjutavad selle seadmed dokumendis kõik objektid.
Sissejuhatus CSS-ile.
CSS on klasside puhul väga sarnane, vaid erinevusega, mida stiili kirjeldatakse juba teadaoleva objekti jaoks. Visuaalse näite jaoks kontrollige oma tuba nüüd (kontor, hall ...), kus sa oled. Kindlasti näete palju erinevaid esemeid (tabel, tool, aken, arvuti). Igal neist objekti objektil on omadused ja teil on vaja teha nende esemete nimekirja ja nende omadustest. Võib-olla on teil midagi järgmist:
tabel:
Pruun värv
Materjal - puidust
arvuti:
valge värv
Materjal - plastid
Eesmärk - töö jaoks
Loomulikult võite minna teisele võimalusele, kuid ainult CSS-i kompileeritakse täpselt, kus objektide asemel objektid ulatuvad ja nende omadused on veidi erinevad. Näiteks siin on väljavõte sellise dokumendi:
keha.
{
Taustvärv: RGB (255,255,153);
Värv: RGB (51,51,153);
}
H3.
{
Värv: RGB (255,0,0);
Font-perekond: Arial, Helvetica;
}
Siin küsitakse, milline on keha ja H3 elemendi stiil. Need valikud, mida vaikimisi ei ole määratud.
CSS-i loomine ei nõua erilist pingutust ja seda saab teha lihtsas sülearvutis, kuigi nendel eesmärkidel ja eksisteerivad eriprogrammidTöö hõlbustamine ja selgelt, mis näitab, kuidas tulevane dokument näeb välja selle stiili abil. Otsige selliseid programme kettale või tuttavatele.
2.2.Dokumendi stiililaua loomine
CSS-ühenduse ühendamiseks on kaks võimalust. Esimene on selle määramiseks dokumendi alguses stiilis element klassina. Seda tehakse sellisena (näide 1):
See dokument
kasutab stiili tabelite
Selles näites näete ekraanil kaks rida, mis koosnevad kahest objektist: H3 ja H3. Vaata, kus Internet Exploreri vaikimisi stiil on pöördunud. Kuid me ei teinud objekti oma stiili endale juhiseid. Seega, olenemata sellest, kui palju teil on õnnistatud objekte H3 ja H3, on nende stiil alati teie stiilis tabelis määratud.
2. 3. Stiillaud eraldi fail
Kui sulle meeldib teie loodud stiil ja soovite seda kasutada kõigis teie dokumentides. Või teie dokument koosneb komplekti HTML-leheküljed Ja kõik nad peavad olema sama stiil, te ei pea sisestama stringid stiilis tabelis iga kord alguses dokumendi.
Teine võimalus CSS-i veebilehe ühendamiseks on cSS-i loomine. Eraldi faili ja lehekülg ise viitab sellele faili. Siis saate kirjutada lehel ainult üks rida ja ikka veel stiil, mis on määratletud stiilis tabelis väline fail. Ma arvan, et ei ole vaja rääkida sellistest viisidest kasust.
Niisiis, kui esmalt loote tabeli, järgides ülaltoodud reegleid. Siis lisate elemendile
Et võimaldada string stiilis leht sarnane järgmistega:Link tähendab seda käesolev lehekülg Element, rel ja tüüp on ühendatud elemendi kirjeldamiseks stiliseeritud tabelina, kuid HREF sisaldab aadressi, millele fail on teie CSS-iga.
Dünaamiline muutus CSS.
Saate dünaamiliselt muuta plug-in stilist tabelis, vastavalt muuta stiili ise. Siin on funktsioon, JScripti keeles, mis seda kutsudes, kui mõni stiil on juba rakendatud, eemaldab selle ja ühendab uue.
funktsioon Change_STYLE ()
(If (Document.Stylesesheets.Href! \u003d null)
Document.Stylesheets.href \u003d "Newstyle.css";
}
Kui stiili tabel on määratletud HTML-leheküljel, saate lisada uusi määratlusi ADDRULE funktsiooni abil (objekt, stiil). Kui objekt on objekt ja stiil, stilistilised seadmed. Siin on näide, kus pärast nupu klõpsamist muudetakse stiliseeritud tabelit (näide 2):
See dokument kasutab stiili lehed
See on lõik. Selle stiili muutmiseks klõpsake nupul
Pärast sellise koodiga lehekülje läbivaatamist näete, kuidas stiili muutused tekib paigalduse lisamisega stiililehele.
Klassid
Klass on teine \u200b\u200bvõimalus selle lehekülje otsimiseks teksti installimiseks. Sisuliselt defineerite stiilide komplekt, näiteks värv, fondi paksus, selle suurus jne, kuid ei anna seda konkreetse sildiga. Klass näeb välja selline:
See näide loob kolm klassi: regulaarne, superbig, autoriõigus. Allpool on näidatud, kuidas neid klasside teksti navigeerimiskihi rakendada.
Superbig klass
Regulaarne klass
Klassi autoriõigus
Samuti saate konkreetselt seostada klassi tag. Näiteks:
P.
{
Fondi suurus: 16pt;
Font-kaal: julge;
}
P.small
(Fondi suurus: 9pt;
marginaal-vasak: 5em;
marginaal-õigus: 5em;
}
Allpool on näidatud, kuidas klassi rakendada
{ font-size:16pt;
font-weight:bold;
font-family:verdana, sans-serif;
{ font-size:9pt;
margin-left:5em;
margin-right:5em;
cool{ color: blue; font-style; italic;}
Этот документ использует стилевые таблицы
Жесткий контроль с помощью тега
Тег - это удобный универсальный инструмент для применения стиля в любом месте, где он необходим.
Этот документ использует стилевые таблицы
Этот документ
использует стилевые таблицы
Тег SPAN применяет класс coll к фразе " использует стилевые таблицы ".
Селекторы ID
Селекторы ID (сокращение от "identifier" - идентификатор) аналогичен классу, но гораздо более ограничен по своим возможностям. Каждый селектор ID может применятся в документе только один раз.
#specialOffer {font-family:gadget,
serif; font-size:40;}
селектор ID можно вызвать следующим образом:
Задание на работу
Ввести в разрабатываемый документ таблицы стилей. Изменить содержание статического HTML-документа с помощью свойств, событий и методов объектов window, событий пользовательского интерфейса, мыши, клавиатуры и т.д.
4. Контрольные вопросы
1. Что такое CSS?
2. Какие способы подключения CSS Вы знаете?
3. Каким образом происходит подключение таблицы стилей внутри документа?
4. Каким образом происходит подключение таблицы стилей из отдельного файла?
5. Как можно изменять стилевые установки, когда CSS находится внутри html - документа?
6. Для чего используются классы в CSS?
7. Преимущества использования классов?
8. Механизм действия тега .
Верстая очередной проект (или ещё только проектируя макетную сетку) многие сталкивались с дилеммой - использовать фиксированную ширину макета или «резиновую» сетку, адаптируемую под размер окна браузера.
У каждого из этих решений есть свои плюсы и минусы, хочу заострить внимание на минусах, так как обычно именно между двух зол именно в отражении минусов этих решений приходится выбирать.
Фиксированная ширина макетной сетки
Вёрстку загоняют в горизонтальный габарит 960-980 пикселей (чтобы на большинстве устройств в большинстве разрешений всё входило), что при больших горизонтальных размерах окна выглядит как-то зябко - тонкая вертикальная полоса полезного содержимого страницы и огромные бесполезные поля неиспользуемого пространства по бокам.«Резиновая» макетная сетка по ширине окна
Опять же при больших горизонтальных размерах окна есть другая проблема: строки текста становятся очень длинными, и читать их становится совсем не так комфортно, как хотелось бы.Ещё одна распространённая проблема этого решения - боковые отступы при больших горизонтальных размерах окна уже не так удачно визуально согласуются с горизонтальными размерами элементов, что также не добавляет комфорта при взгляде на свёрстанный макет.
Хочу предложить нехитрый вариант решения - ограничить минимальный горизонтальный размер фиксированным значением в пикселях, а максимальный сделать относительным в процентном соотношении к ширине окна. Это очень банально решается простыми средствами ещё 2 версии спецификации CSS.
Update: Хочу оговориться, что речь не идёт о классическом эффекте резины и об адаптации под абсолютно все разрешения, скорее лишь про некий разумный диапазон разрешений, под который проектируется макет. В примерах ниже - это классический десктопный диапазон разрешений с горизонтальным габаритом разрешения от 1024 пикселей.Ещё раз акцентирую внимание: в посте не идёт речь про решение для всех видов устройств и все диапазоны разрешений. В рамках одного макета эта задача не решаема в принципе , для её решения так или иначе потребуется несколько макетов. Мухи отдельно, котлеты отдельно.
Создаём контейнер макета:
...
Оформляем его незатейливым кодом стиля:
div.page-container { min-width: 960px; max-width: 75%; margin: 0 auto; padding: 0; }
Однако этого решения кому-то может показаться мало в силу того что при очень больших горизонтальных размерах окна опять проявляются проблемы с длиной строк. Это решается настолько же простым дополнительным приёмом: создание дополнительного внешнего контейнера внутри уже описанного и ограничение его максимальной ширины фиксированным значением (мне субъективно кажется, что лучше всего подходят значния в диапазоне 1400-1600 пикселей). Опять же используем лишь средства CSS 2.0. Такое решение вместо предложенного в первом комментарии простого добавления ширины в процентах для исходного контейнера будет работать ещё и в IE, который вплоть до 9 версии не понимает одновременного указания значений.
Дополняем HTML:
И немного меняем CSS:
div.page-container { max-width: 75%; min-width: 960px; margin: 0 auto; padding: 0; } div.page-container-inner { min-width: 960px; max-width: 1600px; margin: 0 auto; padding: 0; }
Как видите - решение предельно просто и достаточно универсально, может применяться для любых блочных элементов.
Перевод: Влад Мержевич
В CSS 2.1 фоновая картинка, применяемая к контейнеру, сохраняет свои фиксированные размеры. К счастью, в CSS3 введено свойство background-size , с помощью которого фон может быть растянут или сжат. Оно идеально подходит, если вы создаёте шаблон для адаптивного веб-дизайна.
Есть несколько способов определения размеров - взгляните на демонстрационную страницу background-size .
Абсолютное изменение размера
Могут применяться единицы измерения.
Background-size: ширина высота;
По умолчанию ширина и высота установлена как auto , что оставляет исходные размеры изображения.
Вы можете задать новый размер изображения с помощью абсолютных единиц измерения, таких как px, em, cm и др. Пропорции изменятся, если это необходимо. Например, если наша фоновая картинка имеет размеры 200×200 пикселов, то следующий код оставит эту высоту, но сделает ширину в два раза меньше:
Background-size: 100px 200px;
Если указано только одно значение, оно считается шириной. Высота устанавливается как auto и сохраняются пропорции:
Background-size: 100px; /* аналогично */ background-size: 100px auto;
Данный код масштабирует изображение с 200×200 до 100×100 пикселов.
Относительное изменение размера через проценты
Если применяются проценты, размеры основываются на элементе, а НЕ изображении:
Background-size: 50% auto;
Ширина фонового изображения, таким образом, зависит от размеров контейнера. Если у контейнера ширина 500px, то размер нашего изображения уменьшится до 250×250.
Использование процентов может быть полезно для адаптивного дизайна. Поменяйте ширину демонстрационной страницы чтобы понять, как изменяются размеры.
Масштабирование до максимального размера
Свойство background-size также понимает ключевое слово contain . Оно масштабирует изображение таким образом, чтобы оно заполняло контейнер. Другими словами, изображение будет увеличиваться или уменьшаться пропорционально, но ширина и высота не будут превышать размеры контейнера:
Background-size: contain;
Заполнение фоном
Свойство background-size также понимает ключевое слово cover . Изображение будет масштабироваться так, чтобы заполнить весь контейнер, но если различаются соотношения сторон, то картинка будет обрезана.
Background-size: cover;
Масштабирование нескольких фонов
Несколько фонов могут быть масштабированы с помощью списка значений, разделенных запятыми, идущих в том же порядке.
Background: url("sheep.png") 60% 90% no-repeat, url("sheep.png") 40% 50% no-repeat, url("sheep.png") 10% 20% no-repeat #393; background-size: 240px 210px, auto, 150px;
Работа в браузерах
Последние версии всех браузеров поддерживают background-size без префиксов.
IE8 и ниже не поддерживают это свойство. Вы можете использовать фильтр IE для эмуляции значений content и cover , но невозможно изменить размер фоновой картинки без помощи уловок, вроде добавления настоящей картинки позади других элементов. Это грязно, так что я рекомендую изящную деградацию.
» стала поводом для написания сегодняшнего поста. Суть очень схожа и речь здесь пойдет про размер шрифта.
Задача — реализовать динамическое изменение размера шрифта сайта в зависимости от разрешения экрана, т.е. размера окна браузера.
Прежде чем приступить к описанию решения, хочу обозначить два момента :
- Лично для меня полезность данной штуки весьма сомнительна , и я скорее бы рассматривал такую возможность просто в качестве ознакомления. А вот Сергей, например, эту технику давно хотел применить на практике и видит в ней смысл. Поэтому, возможно, кому-нибудь еще эта информация также пригодится.
- Решение довольно простое, работает на моем любимом jQuery, но использование этого фреймворка только ради осуществления данной задачи — не очень разумно , поскольку один лишь фреймворк «весит» под 60 Кб, а сам скрипт при этом состоит из всего лишь 10 строк. Я полагаю, что на нативном JavaScript скрипт, реализующий то же самое, будет значительно меньшего размера.
Итак, приступим.
Сначала я подробно опишу работу jQuery-скрипта, а затем объясню, как его применить к той или иной части веб-сайта.
jQuery
За точку отсчета я взял ширину в 1000 пикселей. Как правило, это минимальная ширина, под которую верстаются сайты. Заносим этот показатель в переменную:
Var width = 1000;
Теперь устанавливаем минимальный размер шрифта в пикселях, ниже которого он не будет уменьшаться:
Var bodyWidth = $("html").width();
Определяем коэффициент, на который будет умножаться базовый (минимальный) размер шрифта в зависимости от размера окна браузера. Цифру получаем путем деления ширины хтмл-документа на базовую (минимальную) ширину. Т.е., к примеру, если ширина окна браузера составляет 1600 пикселей, то получим коэффициент 1,6.
Var multiplier = bodyWidth / width;
Выполняем условие: если ширина хтмл-документа больше базовой ширины, тогда размер шрифта умножаем на коэффициент, округляя полученный результат до целого числа:
If ($("html").width() >= width) fontSize = Math.floor(fontSize * multiplier);
Теперь полученный скорректированный размер шрифта применяем к тегу
:$("body").css({fontSize: fontSize+"px"});
Все вышеописанные строки помещаем в функцию function fontSize() {} , затем запускаем эту функцию после загрузки хтмл-документа, а также после изменения размера окна браузера:
$(function() { fontSize(); }); $(window).resize(function() { fontSize(); });
Вот целиком код jQuery-скрипта, который получился у нас в итоге:
Function fontSize() { var width = 1000; // ширина, от которой идет отсчет var fontSize = 12; // минимальный размер шрифта var bodyWidth = $("html").width(); var multiplier = bodyWidth / width; if ($("html").width() >= width) fontSize = Math.floor(fontSize * multiplier); $("body").css({fontSize: fontSize+"px"}); } $(function() { fontSize(); }); $(window).resize(function() { fontSize(); });
HTML
Рассмотрим применение вышеуказанного скрипта на примере 3-колоночного макета страницы, имеющего следующую структуру HTML-кода:
CSS
Теперь осталось только использовать динамический размер шрифта для тех блоков, к которым мы хотим его применить. Давайте, для примера, сделаем так, чтобы он менялся у всей страницы, за исключение правой колонки, а у левой колонки сделаем его чуть меньше основного.
Все очень просто.
Во-первых , правой колонке мы просто-напросто устанавливаем свой фиксированный размер шрифта и высоту строки, и скрипт его не затронет:
#right { font-size: 12px; line-height: 18px; }
Во-вторых , левой колонке ставим чуть меньший размер шрифта:
#left { font-size: 0.9em; }
В-третьих , нужно либо у тега
, либо у соответствующего блока указать высоту строки в em, чтобы она тоже изменялась динамически.Если вы хотите менять размер шрифта только у конкретного блока, допустим, у #content , тогда будет логичнее в скрипте поменять body (в строке $("body").css({fontSize: fontSize+"px"});) на нужный идентификатор или класс.