« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга







    Популярное
Delphi и системная информация о ресурсах компьютера

Функция length

Что нас ждет в PHP 6

Виды документации

Знакомство с Visual FoxPro

Стандартные функции и процедуры

Настройка палитры компонентов

Функция DestroyIcon

Переполнение буфера

Гостевая книга на PHP


ПнВтСрЧтПтСбВс
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
    Архив файлов

    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 100
Пользователей: 0

Статьи:: Интернет технологии :: CSS :: Десятка лучших CSS трюков Трентона Мосса


отправить ссылку другу версия для печати  Обсудить на форуме

Десятка лучших CSS трюков Трентона Мосса



Применение CSS существенно облегчает работу разработчика веб-документов. С появлением каждой новой версии браузера у пользователя появляется необходимость совершенствовать CSS. В настоящей статье размещены 10 наиболее полезных советов Трентона Мосса, которые помогут вам сэкономить ценное время, потраченное на скитание по глобальной сети в поисках необходимого решения возникшей проблемы.



1. Блоковые элементы против строчных

Элементы HTML разметки делятся на блоковые и строчные.

Характеристика блоковых элементов:

  • всегда начинаются с новой строки;
  • можно задать высоту, высоту строки и верхнее и нижнее поля;
  • если ширина не установлена, то по умолчанию она составит 100%.

К блочным элементам относятся следующие теги: <div>, <p>, <h1>, <form>, <ul> и <li>.

Строчные элементы обладают противоположными характеристиками:

  • пишутся на той же строке;
  • высота, высота строки и поля не изменяются;
  • ширина также не изменяется, она равна длине текста или изображения.

Примером таких тегов являются: <span>, <a>, <label>, <input>, <img>, <strong> и <em>.

Для того чтобы изменить статус элемента, используется «display». Но необходимость применения этого параметра может вызвать сомнение: для чего заменять блоковый оператор на строчный или наоборот? С первого взгляда может даже показаться, что вам вряд ли придется когда-либо воспользоваться этим трюком, однако, фактически, именно он является мощным методом, с помощью которого вы можете:

  • начать строку со строчного элемента;
  • поместить блоковый элемент в середине строки;
  • определить ширину строчного элемента;
  • изменить высоту строчного элемента;
  • распределить цвет фона по ширине текста блокового элемента, не определяя точную ширину.

2. Блочная модель ( Box Model Hack)

Блочная модель используется для визуализации в браузерах до 6-й версии, когда такие параметры как border (граница) и padding (отступ) прописываются вместе с параметром width (ширина) в одном блоке.

padding: 2em;
border: 1em solid green;
width: 20em;
width/**/:/**/ 14em;

Первая команда читается всеми браузерами, вторая команда – всеми браузерами, кроме IE 5-й версии. Так как вторая команда стоит именно второй, она имеет превосходство над первой: любая команда, находящаяся на втором месте в блоке преобладает над первой. Итак, как же все это работает? Пустой комментарий ( /**/) перед двоеточием проинструктирует IE 5. o игнорировать команду, с этой же целью пустой комментарий ставится после двоеточия. Пользуясь этим правилом, можно спрятать команду от всех IE 5. x браузеров.

3. Минимальная ширина страницы

Другой весьма удобной CSS командой является команда mid - width , с помощью которой можно определить среднюю ширину любого элемента, в частности, страницы.

К сожалению, IE не понимает этой команды, поэтому придется постараться, чтобы сделать ее функциональной и для этого браузера. Для этого в теге <body> нужно, во-первых, прописать <div>, т.к. нельзя задать минимальную ширину для <body>:

<body>
<div class="container">

Затем, прописывается команда, задающая минимальную ширину в 600 пикселей.

#container
{
min-width: 600px;
width:expression(document.body.clientWidth < 600? "600px": "auto" );
}

Первая команда устанавливает минимальную ширину в 600 пикселей, вторая представляет собой команду, прописанную в Java script, которая будет понятна только IE. Следует отметить, что хотя при помощи этой команды вы делаете свой CSS документ недействительным, вам может понадобиться размещение данной команды в заголовке своего HTML-документа. Вместе с минимальной шириной страницы можно задать и максимальную величину:

#container
{
min-width: 600px;
max-width: 1200px;
width:expression(document.body.clientWidth < 600? "600px" : document.body.clientWidth > 1200? "1200px" : "auto");
}  

4. Ширина и длина в IE браузерах

Угодить IE довольно таки не просто. Для этого браузера не существует команд min- width (минимальная ширина) и min- height (минимальная высота), он распознает команды width (ширина) и height (высота) как эти команды.

Это вызывает немало проблем, т.к. для того, чтобы изменить размер текста или количество текста, необходимо изменить параметры блочной модели. Если в блоке прописываются только команды width (ширина) и height (высота), то не один IE браузер не даст возможности менять параметры блока. С помощью только команд min- width (минимальная ширина) и min- height (минимальная высота) также не возможно манипулировать параметрами в IE браузерах.

Особенно много трудностей возникает при использовании фоновых изображений. Так, для фонового изображения шириной 80 пикселей и высотой 35 пикселей необходимо, чтобы размеры блока (рамки) были по умолчанию именно 80 на 35 пикселей. Однако, изменяя параметры текста, необходимо расширять границы блока.

Для решения этой проблемы необходим следующий код для блока class=" box":

.box
{
width: 80px;
height: 35px;
}


html>body .box
{
width: auto;
height: auto;
min-width: 80px;
min-height: 35px;
}

Все браузеры прочтут первое CSS правило, а IE проигнорирует второе правило, поскольку в нем используется дочерний селектор. Другие браузеры (не IE) прочтут второе правило, которое, как уже говорилось, имеет превосходство над первым, т.к. в нем прописывается более конкретная информация.

5. Команда преобразования текста

Другая менее известная, но не менее полезная CSS команда – это команда text- transform (преобразование текста). Три правила, которые могут прописываться этой командой: text- transform: uppercase, text- transform: lowercase, и text- transform: capitalize. Согласно первому правилу, все символы прописываются прописными буквами, в соответствии со вторым – все прописываются строчными, а по третьему правилу каждое слово начинается с заглавной буквы.

Эта команда крайне необходима, особенно, когда редактированием контента занимается сразу несколько человек, т.к. она обеспечивает соответствие стиля по всему веб-сайту. Например, заголовки страниц вашего сайта должны начинаться с заглавных букв, команда text- transform: capitalize станет гарантиейвыполнения этого условия, даже если редакторы забыли прописать каждый заголовок с заглавной буквы.

Также предпочтительно использовать команду transform: uppercase длятого, чтобы прописать заглавными буквами отдельные заголовки, т.к. некоторые программы ( screen reader) видят короткие слова как акронимы и в результате « CONTACT US» может превратиться в « contact US», что резко меняет смысл фразы.

6. Исчезающий текст или изображение в IE

IE иногда выдает дефект, который проявляется в исчезновении фоновой картинки с экрана. Фактически эта картинка присутствует на странице, и, выделив все или обновив страницу, вы снова увидите её. Довольно таки странно.

Это проблема часто касается именно фоновых изображений или текста, размещенного в непосредственной близости с переменным элементом. Для решения проблемы существует несколько альтернатив: можно просто добавить position: relative к CSS команде для исчезающего элемента – и, как ни странно, это помогает. Если же это не помогает (а иногда именно так и случается), можно установить ширину для исчезающего элемента – это уж точно должно помочь.

7. Невидимый текст

Иногда вам необходимо сделать определенный текст невидимым. Такой текст может понадобиться пользователям программ вроде "screen reader" для категоризации предметов или вставки заголовков для разделов. Если вам не хочется изменять вид вашей страницы, добавляя какие-то элементы, просто сделайте их невидимыми, и не один браузер не распознает их.

Иногда необходимо сделать невидимой информацию в портативных и печатных файлах, в которых она не должна появиться.

С помощью display: none легко сделать невидимым текст портативных и печатных файлов, однако это не универсальная команда, она может быть применима не ко всем программам ( screen reader). В последнее время появляется очень много «умных» программ, которые просто игнорируют любой текст, для которого прописано правило display: none.

Для таких программ используется особое правило: position: absolute; left: - 9000 px. Такая команда разместит текст на 9000 пикселей влево от левого края экрана, и, таким образом, сделает его невидимым.

8. CSS документы для портативных файлов

Можно создать специальный CSS документ, предназначающийся для портативных компьютеров и мобильных телефонов и активируемый только при использовании одного из этих приборов для доступа к вашему сайту. Все больше сайтов создают отдельные CSS документы для печати; при использовании такого документа любая веб-страница автоматически становится пригодной для печати, как только пользователь собирается распечатать ее.

Приведенная ниже команда используется для загрузки CSS документа в портативный компьютер или мобильный телефон:

<link type="text/css" rel="stylesheet" href="handheldstyle.css" media="handheld" />

CSS команда для CSS файлов портативных приборов имеет превосходство над любой равнозначной командой основного CSS документа. Что же это за файл?

В идеале нужно продумать страницу таким образом, чтобы пользователям портативных приборов не пришлось прокручивать ее горизонтально.

Для того чтобы сделать свою страницу удобной для такого пользователя, просто откройте ее в обычном браузере и задайте ее ширину в 150 пикселей. Затем откройте свой основной CSS файл и пропишите несколько дополнительных команд в самом низу документа. Эти команды подгонят формат веб-сайта под параметры монитора портативного компьютера или мобильного телефона и облегчат просмотр страниц. Затем откройте новый документ, вырежьте эти команды и вставьте в этот документ, сохраните его под именем handheldstyle. css или под любым другим именем.

Веб-сайт для просмотра пользователей портативных приборов должен отличаться от того, который предназначается для пользователей обычных браузеров, т.к. работа пользователя за портативным прибором имеет свою специфику.

9. Эффект объемной кнопки

Раньше объемные кнопки были очень модными, но для их установки были необходимы Java script и картинка, что затрудняло их создание. Сейчас создание таких кнопок возможно при использовании специальных команд CSS:

a {
display: block;
border: 1 px solid;
border- color: # aaa #000 #000 # aaa;
width: 8 em;
background: # fc0;
}

a: hover
{
position: relative;
top: 1px;
left: 1px;
border-color: #000 #aaa #aaa #000;
}

Кроме этих команд для создания желаемого эффекта могут использоваться и другие команды.

10. Одинаковый код для навигации по странице

На многих веб-сайтах подсвечивается пункт меню, соответствующий местонахождению пользователя на сайте. Это существенно помогает пользователю ориентироваться на сайте и является основным требованием, обеспечивающим удобство и простоту использования. Однако удобную навигацию по сайту может обеспечить только отлаженная HTML разметка для каждой страницы, на создание которой уходит много времени. Возможно, ли задать подсветку навигации для каждой страницы сайта одним HTML-кодом? Трентон Мосс дает положительный ответ.

Прежде всего, необходимо определить класс для каждого пункта навигации:

<ul>
<li><a href="#" class="home">Home</a></li>
<li><a href="#" class="about">About us</a></li>
<li><a href="#" class="contact">Contact us</a></li>
</ul>

Затем нужно добавить id для тега <body>. Идентификатор id должен отображать, в каком разделе сайта находиться пользователь, и изменяться, когда пользователь переходит в другой раздел. Так, если пользователь находится на главной странице, содержание id будет следующим: <body id =“about”>, в разделе «О компании» - <body id =“home”>, в разделе «Контакты» - <body id =“ contact”>.

Следующим шагом будет создание нового CSS правила:

#home .home, #about .about, #about .about, #contact .contact
{
commands for highlighted navigation go here
}

Это правило будет действовать только при условии, когда class=“home” содержится в id=“home”, class=“about” в id=“about”, а class=“contact” в id=“contact”. Это произойдет только тогда, когда пользователь зайдет в соответствующий раздел сайта, незаметно для себя подсвечивая пункт меню.

Источник информации: http://www.sitepoint.com/




Рубрика: CSS



О том как разработчики пьют кофе.

Юмор

Сегодня ночью вернулся из Москвы, где я посетил сразу три конференции — SQA, PM Days и PHPconf. На конференции прозвучала масса интересных докладов, о которых наверняка еще не раз напишут, я же хочу поделиться некоторыми забавными наблюдениями. В перерывах между докладами все присутствующие могли выйти в холл, где их ожидали вкусные плюшки, молоко, чай и кофе. Для последнего на столах установили пять термосов. Разумеется для более чем двухсот участников конференции их было явно недостаточно и на каждой конференции эту проблему решали по своему, как умели.


Подробнее... | Рубрика: Юмор | Добавлено: 24.06.2008

Работаем с LINQ to XML.

LINQ

Что же, попробуем раскрыть принципы работы этой новой технологии от Microsoft.


Подробнее... | Рубрика: LINQ | Добавлено: 24.06.2008

XmlSerializer - Assembly Leak без спроса.

Сборки и развертывание

В некоторых частях .NET Framework, таких как XmlSerializer, используется внутреннее динамическое создание кода.XmlSerializer создает временные файлы C#, компилирует результирующие файлы во временную сборку и затем загружает эту сборку в процесс. Такое создание кода тоже стоит сравнительно дорого, поэтому XmlSerializer размещает временные сборки в кэш, по одной на каждый тип. Это значит, что в следующий раз при создании кода XmlSerializer для класса Х не будет создаваться новая сборка, а будет использована сборка из кэша. Однако, не все так просто.


Подробнее... | Рубрика: Сборки и развертывание | Добавлено: 24.06.2008

Остальные статьи:

Реализация MVC в WPF. Александр Шер
ADO.NET Sync Services. Марат Бакиров
Рефакторинг JavaScript с применением Microsoft ASP.NET AJAX. Александр Шер
Архитектура приложений: интерфейс пользователя. Дмитрий Мартынов
Введение в Windows Workflow Foundation. Марат Бакиров
Создание расширяемых и удобных библиотек на платформе .NET. Особенности реализац...
Почему Ruby и Python не могут занять место стареющей Java
Использование пространств имен для организации JavaScript-кода
Создание сложных приложений в ExtJS
Google добавил интерфейс для AJAX-библиотек
Стивен Синофски о Windows 7
Несколько вещей об Ajax, которые должен знать веб-мастер
Model-View-Controller для JavaScript
Remix 2008: интернет меняет Microsoft
Планировщик задач на JavaScript
Построение систем автоматического протоколирования Си/Си++ кода

Цитата дня (все,добавить):

    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование

Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия