Առանց կասկադային ոճի թերթեր կիրառելու, ձեւի տարրերը կցուցադրվեն օգտագործված զննարկչի համաձայն եւ օպերացիոն համակարգ Լռելյայն պարամետրերը: բայց Օգտագործելով CSS: Թույլ է տալիս ստեղծել ձեր կայքի ձեւավորմանը համապատասխան ձեւեր:
Որոշում
Ձեւի տարրը, ինչպես ցանկացած այլ HTML տարր, կարող է սահմանվել CSS- ի միջոցով:
ՆկՂ 6.1, Լռելյայն տեսարան Firefoxi զննարկիչում
Պատկերված է ՆկՂ 6.1 Ձեւը զարդարված է Firefox զննարկչի կողմից Windows XP- ի ներքո օգտագործված լռելյայն պարամետրերին համապատասխան: Տարբեր պլատֆորմների տակ տարբեր զննարկիչներում դիտելիս դրա տեսակը կփոխվի: Ստորեւ բերված է բնորոշ ձեւ.
«http://www.w3.org/1999/xhtml»lang \u003d "en-us"\u003e
Այս ձեւի տեսքը կարող է փոփոխվել `ձեւերով` տարրերի համար.
Ձեւ (սահման. 1px կետավոր #AAAAAA; լիցք, 0 .5EM; Լայնություն, 100px; Գույն, # 00008B; ֆոնային գույնը. # add8e6; սահմանը `4 հատ. # 00008B;)
Այժմ ձեւը կարծես թե նկարում է: 6.2.
Քննարկում
Ինչպես երեւի կռահել եք, HTML տարրերի ոճերի սահմանում Ձեւ, մուտք, տեքստար եւ ընտրեք Դրանք կկիրառվեն իրենց յուրաքանչյուր օրինակին, որտեղ գտնվում է էջի վրա, որի հետ կապված է ոճային սեղանի ֆայլը: Դաշտային դաշտերի ձեւը փոխելու համար մենք կարող ենք օգտագործել շատ տարբեր հատկություններ: Օգտագործելով CSS, կարող եք կառավարել դաշտի գրեթե բոլոր ասպեկտները
:
Խորհուրդ
Ձեւաթղթեր եւ ֆոնի գույն, Ձեր կայքի այցելուների մի մասը կարող է վատացնել գույները վատ, իսկ մի մասը կարող է օգտագործել ձայնային զննարկիչ: Հետեւաբար, գույները երբեք չպետք է կատարեն կարեւոր գործառույթներ. Օրինակ, «դեղին դաշտերը լրացնելու համար պահանջվում է» հրահանգները, պետք է լինեն ամբողջական արգելքի ներքո:
Հաշվի առեք հատկությունների արժեքը ավելի մանրամասն.
Թիվ 4 լաբորատորիա
Կասկադի ոճի սեղաններ (CSS)
Աշխատանքի նպատակը
Բավարարել կասկադային սեղանների հայեցակարգը Ոճեր CSS:, ինչպես նաեւ դրանց օգտագործման գործնական հմտություններ ստանալը:
Տեսական տեղեկատվություն:
Internet Explorer. Ձեզ առաջարկում է ձեր ոճը, որը կոչվում է լռելյայն: Այս ոճը ներառում է սպիտակ մաքուր ֆոն, սեւ տառատեսակի գույնը, բոլոր հղումները ընդգծված են, կապույտ եւ այլն, ինչ, եթե ձեզ դուր չի գալիս այս ամենը: Դուք արդեն գիտեք, թե ինչպես ուղղակիորեն փոխել տարբեր ատրիբուտները: Նույնիսկ եթե նույն առարկաները նույնն են, դուք արդեն գիտեք, թե ինչպես կիրառել դասերը: Բայց կա եւս մեկ հնարավորություն: Փաստաթղթի ամբողջ ոճը նշելու համար օգտագործվում են այսպես կոչված հիերարխիկ ոճի սեղաններ (Cascade Style Sheets - CSS), որոնք տարբեր օբյեկտների հատկությունների մի շարք են: Ինչ-որ բան, որը նրանք նման են դասերի, բայց եթե դասը ստեղծվի փաստաթղթի ներսում եւ կարող է կիրառվել, եւ գուցե ոչ, ապա CSS- ը, եթե այն կապված է, դրա մեջ գտնվող տեղադրումները ազդում են փաստաթղթում գտնվող բոլոր օբյեկտների վրա:
Ներածություն CSS- ին:
CSS- ը շատ նման է դասերին, միայն այն տարբերությամբ, որ ոճը նկարագրված է նրանց մեջ արդեն հայտնի օբյեկտի համար: Տեսողական օրինակով ստուգեք ձեր սենյակը այժմ (Գրասենյակ, սրահ ...), որում դուք եք: Իհարկե, կտեսնեք շատ տարբեր իրեր (սեղան, աթոռ, պատուհան, համակարգիչ): Այս օբյեկտի օբյեկտներից յուրաքանչյուրն ունի բնութագրեր, եւ դուք պետք է կազմեք այս կետերի ցուցակը եւ դրանց բնութագրերը: Գուցե դուք կունենաք որեւէ բան հետեւյալ կերպ.
Աղյուսակ.
Շագանակագույն գույն
Նյութ - փայտե
Համակարգիչ.
Սպիտակ գույն
Նյութ - պլաստմասսա
Նպատակը `աշխատանքի համար
Իհարկե, դուք կարող եք գնալ մեկ այլ ճանապարհ, բայց միայն CSS- ն է կազմվում, թե որտեղ, օբյեկտների փոխարեն, առարկաները դուրս են գալիս, եւ դրանց բնութագրերը մի փոքր այլ են: Օրինակ, ահա նման փաստաթղթի հատվածը.
Մարմին:
{
Նախապատմության գույն. RGB (255,255,153);
Գույն, RGB (51,51,153);
}
H3.
{
Գույն, RGB (255,0,0);
Տառատեսակ-ընտանիք. Arial, Helvetica;
}
Այստեղ հարցնում են, թե ինչպիսին կլինի մարմնի եւ H3 Element- ի ոճը: Այն ընտրանքները, որոնք լռելյայն չեն նշվում:
CSS- ի ստեղծումը հատուկ ջանք չի պահանջում եւ կարող է իրականացվել պարզ նոթատետրում, չնայած այդ նպատակների համար եւ գոյություն ունի Հատուկ ծրագրերՀեշտացնել աշխատանքը եւ հստակ ցույց տալ, թե ինչպես ապագա փաստաթուղթը նման կլինի այս ոճը: Փնտրեք ձեր սկավառակի կամ ծանոթների նման ծրագրերը:
2.2.Փաստաթղթում ոճային աղյուսակի ստեղծում
CSS միացնելու երկու եղանակ կա: Առաջինը փաստաթղթի սկզբում այն \u200b\u200bոճային տարրի մեջ դնելն է, որպես դաս: Դա արվում է այսպիսին (օրինակ 1).
Այս փաստաթուղթը
Օգտագործում է ոճի սեղաններ
Այս օրինակում էկրանին կտեսնեք երկու տող, որոնք բաղկացած են երկու առարկայից, H3 եւ H3: Տեսեք, որում ներառվել է Internet Explorer- ի լռելյայն ոճը: Բայց մենք օբյեկտում որեւէ հրահանգ չենք կատարել իր ոճով: Այսպիսով, անկախ նրանից, թե որքան եք օժտել \u200b\u200bH3 եւ H3 օբյեկտները, նրանց ոճը միշտ կլինի այնպես, ինչպես նշված եք ոճաբանների սեղանի մեջ:
2. 3. Ոճային սեղան Առանձին ֆայլ
Եթե \u200b\u200bՁեզ դուր է գալիս ձեր ստեղծած ոճը եւ ցանկանում եք օգտագործել այն ձեր բոլոր փաստաթղթերում: Կամ ձեր փաստաթուղթը բաղկացած է մի շարքից HTML էջեր Եվ բոլորն էլ պետք է ունենան նույն ոճը, ձեզ հարկավոր չէ ամեն անգամ փաստաթղթի սկզբում մուտք գործել ոճային սեղանի տողեր:
CSS- ին վեբ էջին միացնելու երկրորդ ձեւը Ստեղծելով CSS: Առանձին ֆայլում եւ էջն ինքնին վերաբերում է այս ֆայլին: Այնուհետեւ էջում կարող եք գրել միայն մեկ տող եւ դեռ ոճով, այն կլինի ինչպես սահմանված է ոճաբանների սեղանի մեջ Արտաքին ֆայլ, Կարծում եմ, որ անհրաժեշտ չէ խոսել նման ձեւի օգուտների մասին:
Այսպիսով, սկզբում դուք ստեղծում եք սեղան, հետեւելով վերը նշված կանոններին: Այնուհետեւ դուք ավելացնում եք տարրը
Հնարավորություն տալ լարային ոճը նման է հետեւյալին.Հղումը նշանակում է Ընթացիկ էջ Տարրը, rel եւ տեսակը միացված են տարրը որպես ոճավորված սեղան նկարագրելու համար, բայց HREF- ն պարունակում է այն հասցեն, որով ֆայլը ձեր CSS- ի հետ է:
Դինամիկ փոփոխություն CSS.
Դուք կարող եք դինամիկ կերպով փոխել plug-in- ի անունը ոճաբանների սեղանի միջոցով, համապատասխանաբար, ինքնուրույն փոխելը: Ահա մի գործառույթ, ջահերի լեզվով, որը զանգահարելիս, եթե որեւէ ոճ արդեն կիրառվում է, հեռացնում է այն եւ միացնում է նորը:
Գործառույթի փոփոխություն_Սովորություն ()
(Եթե (փաստաթուղթ .Stylesheets.href! \u003d null)
Document.WSTYLESHETES.HREF \u003d "NEWSTYLE.CSS";
}
Եթե \u200b\u200bոճային աղյուսակը սահմանվում է HTML էջում, կարող եք ավելացնել նոր սահմանումներ, օգտագործելով AddRule գործառույթը (օբյեկտ, ոճ): Այն դեպքում, երբ օբյեկտը օբյեկտ է, եւ ոճ, համապատասխանաբար, ոճական կայանքներ: Ահա մի օրինակ, որում սեղմելուց հետո ստիլիզացված սեղանը փոխված է (օրինակ 2).
Այս փաստաթուղթը օգտագործում է ոճային թերթեր
Սա պարբերություն է: Կտտացրեք կոճակը, իր ոճը փոխելու համար
Էջը նման ծածկագրով վերանայելուց հետո կտեսնեք, թե ինչպես են տեղի ունենում ոճային փոփոխությունները `տեղադրումը ոճային թերթիկ ավելացնելով:
Դասեր
Դասը տեղադրելու եւս մեկ միջոց է, թե ինչպես պետք է տեքստը նայի էջը: Ըստ էության, դուք սահմանում եք մի շարք ոճեր, ինչպիսիք են գույնը, տառատեսակի հաստությունը, դրա չափը եւ այլն, բայց չեն նշանակում այն \u200b\u200bհատուկ պիտակ: Դասը այսպիսին է.
Այս օրինակը ստեղծում է երեք դաս, կանոնավոր, գերհզոր, հեղինակային իրավունքի: Ստորեւ ներկայացված է, թե ինչպես կիրառել այս դասերը տեքստի նավիգացիայի շերտում:
Superbig դաս
Դասի կանոնավոր
Դասի հեղինակային իրավունքի պաշտպանություն
Կարող եք նաեւ հատուկ կապել դասի պիտակը: Օրինակ:
Պսակել:
{
Տառատեսակի չափը, 16pt;
Տառատեսակ-քաշը `համարձակ;
}
P.small
(Տառատեսակի չափը `9PT;
Մարգին-ձախ. 5EM;
Մարգին-աջ, 5EM;
}
Ստորեւ ներկայացված է, թե ինչպես կիրառել դասը
{ 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"});) на нужный идентификатор или класс.