Bez primjene kaskadnih stilova listova, elementi oblika bit će prikazani u skladu s korištenim preglednikom i operativni sistem Zadane postavke. ali koristeći CSS. Omogućuje vam kreiranje oblika koji odgovaraju dizajnu vaše web lokacije.
Odluka
Stil forme Element, kao i bilo koji drugi HTML element, može se podesiti pomoću CSS-a.
Sl. 6.1. Podrazumevani prikaz obrasca u Browser Firefoxi
Slika sl. 6.1 Obrazac je uređen u skladu s zadanim postavkama koje koristi Firefox pretraživač pod Windows XP. Njegova će se vrste mijenjati prilikom gledanja u razne preglednike pod različitim platformama. Ispod je tipičan oblik:
"http://www.w3.org/1999/xhtml"lang \u003d "en-nas"\u003e
Izgled ovog obrasca može se promijeniti pisanjem stilova za elemente:
obrazac (obrub: 1px tačkasta #Aaaaaa; Padding: 0.5EM;) OBRAZAC DIV (1EM;) Ulaz (boja: # 00008b; # add8e6; obrub: 1px solid # 00008b;) Odaberite ( Širina: 100px; Boja: # 00008b; BOJA: 1px Solid # 00008b;) Textarea (širina: 200px; Visina: 00008b; Boja pozadine: # Add8e6; granica: 1px solid # 00008B;)
Sada se obrazac izgleda na slici. 6.2.
Diskusija
Kao što ste vjerovatno nagađali, zadane vrijednosti stilova za HTML elemente obrazac, ulaz, tekstara i odaberite Oni će se primijeniti na svaku njihovu instancu koja se nalazi na stranici s kojom je povezana datoteka tablice u stilu. Da biste promijenili oblik polja polja, možemo koristiti mnogo različitih svojstava. Korištenje CSS-a možete upravljati gotovo svim aspektima polja
:
Vijeće
Obrasci i boju pozadine. Dio posjetilaca vaše web stranice može loše razabrati boje, a dio može koristiti glasovni preglednik. Stoga boje nikada ne bi trebale obavljati važne funkcije - na primjer, upute poput "žuti polja su potrebna za ispunjavanje" trebaju biti pod potpunom zabranom.
Razmislite o vrijednosti svojstava detaljnije:
Laboratorijski rad broj 4
Stolovi za kaskadne stilove (CSS)
svrha rada
Upoznajte koncept kaskadnih stolova styles CSS., kao i dobivanje praktičnih vještina njihove upotrebe.
Teorijske informacije.
Internet Explorer. Nudi vam svoj stil, nazvani zadani. Ovaj stil uključuje bijelu čistu pozadinu, crna boja fonta, sve su reference podvučene i plave, itd., Što ako vam se sve ovo ne sviđa? Već znate kako direktno promijeniti različite atribute. Čak i ako su isti objekti isti, već znate kako primijeniti klase. Ali postoji još jedna prilika. Da biste odredili cijeli stil dokumenta, koriste se takozvani hijerarhijski stilski stolovi (kaskadni listovi - CSS), koji su skup objekata različitih objekata. Nešto što nalikuju časovima, ali ako se klasa kreira unutar dokumenta i može se primijeniti, a možda ne, a zatim CSS, ako je povezana, instalacije u njemu utječu na sve objekte u dokumentu.
Uvod u CSS.
CSS je vrlo sličan časovima, samo s razlikom da je stil opisan u njima za već poznati objekt. Za vizualni primjer pregledajte svoju sobu sada (ured, hodnik ...) u kojem ste. Sigurno ćete vidjeti mnogo različitih predmeta (stol, stolica, prozor, računar). Svaki od ovih objekata objekata ima karakteristike i morate napraviti popis ovih predmeta i njihovih karakteristika. Možda ćete imati nešto kako slijedi:
tabela:
Smeđe boje
Materijal - Drveni
kompjuter:
Bijela boja
Materijal - plastika
Svrha - za posao
Naravno, možete otići na drugi način, ali samo CSS sastavlja se tačno gdje, umjesto objekata, predmeti strše, a njihove karakteristike su malo drugačije. Na primjer, ovdje je izlomak takvog dokumenta:
telo.
{
Boja pozadine: RGB (255,255,153);
Boja: RGB (51,51,153);
}
H3.
{
Boja: RGB (255,0,0);
Porodica sa font: Arial, Helvetica;
}
Ovdje se pita šta će biti stil tijela i H3 elementa. One opcije koje nisu navedene prema zadanim postavkama.
Stvaranje CSS-a ne zahtijeva posebne napore i može se izvesti u jednostavnoj bilježnici, iako u te svrhe i postoje posebni programiOlakšavanje rada i jasno pokazivanje kako će se budući dokument izgledati korištenje ovog stila. Potražite takve programe na vašem disku ili iz poznanika.
2.2.Stvaranje tablice stila u dokumentu
Postoje dva načina za povezivanje CSS-a. Prvo je postaviti u stil elementu na početku dokumenta, kao klasa. To se radi ovako (primjer 1):
Ovaj dokument
koristite tablice u stilu
U ovom primjeru, na ekranu ćete vidjeti dvije linije koje se sastoje od dva objekta: H3 i H3. Gledajte, u kojem se zadani stil Internet Explorera okrenuo. Ali nismo uputili nikakve upute u samom objektu o svom stilu. Dakle, bez obzira koliko ste obdarili predmeti H3 i H3, njihov stil će uvijek biti onakav koji ste naveli u stilističkom stolu.
2. 3. Stilski stol u odvojena datoteka
Ako vam se sviđa stil koji ste stvorili i želite ga koristiti u svim vašim dokumentima. Ili se vaš dokument sastoji od seta HTML stranice I svi moraju imati isti stil, ne trebate unositi žice u tablicu stila svaki put na početku dokumenta.
Drugi način za povezivanje CSS na web stranicu je stvaranje CSS-a. U zasebnoj datoteci, a sama stranica odnosi se na ovu datoteku. Zatim možete napisati samo jednu liniju i još uvijek stil, bit će definiran u stilističkom stolu u vanjska datoteka. Mislim da nije potrebno razgovarati o prednostima takvog načina.
Dakle, u početku kreirate tablicu, nakon gornjih pravila. Zatim dodajete elementu
Da biste omogućili listu stila niza sličan sljedećem:Link znači to trenutna stranica Element, rel i tip povezani su da bi se element opisao kao stilizirani stol, ali Href sadrži adresu na koju je datoteka sa vašim CSS-om.
Dinamična promjena CSS.
Možete dinamički promijeniti naziv dodatka sa stilističkim stolom, u skladu s tim, promjenom samog stila. Evo funkcije, na jscriptskom jeziku, koji, kada ga nazovete, ako se neki stil već primijeni, uklanja ga i povezuje novu.
funkcija Change_style ()
(ako (dokument.stylesheets.href! \u003d null)
dokument.stylesheets.href \u003d "newstyle.css";
}
Ako je tablica u stilu definirana unutar HTML stranice, možete dodati nove definicije pomoću funkcije adrule (objekt, stil). Ako je objekt objekt, a stil, respektivno, stilske instalacije. Evo primjera u kojem se nakon klika na tipku promijeni i stilizirana tablica (primjer 2):
Ovaj dokument koristi liste u stilu
Ovo je odlomak. Kliknite na gumb da biste promijenili svoj stil
Nakon pregleda stranice sa takvim kodom vidjet ćete kako se događa u stilu dodavanjem instalacije u stil lim.
Casovi
Klasa je još jedan način instaliranja načina na koji bi tekst trebao potražiti na stranici. U suštini, definirate set stilova, poput boje, debljine fonta, njegove veličine i tako dalje, ali ne dodjeljujte to određenoj oznaci. Klasa izgleda ovako:
Ovaj primjer stvara tri klase: redovno, superbig, autorska prava. Ispod je prikazano kako primijeniti ove klase u tekstualni navigacijski sloj.
Superbig klasa
Klasa redovna
Klasa Autorska prava
Takođe možete posebno vezati oznaku klase. Na primjer:
P.
{
Veličina fonta: 16pt;
Težina fonta: podebljana;
}
P.Small
(Veličina fonta: 9pt;
Margin-Left: 5EM;
Marža - desno: 5EM;
}
Ispod je prikazano kako primijeniti klasu
{ 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"});) на нужный идентификатор или класс.