Большие рисунки, узкие таблицы, полупрозрачность и ещё немного CSS
Вот ещё пара стилевых заморочек, связанных с Internet Explorer и не только. Как правильно разместить картинку с шириной, заданной в процентах, в ячейке таблицы. Прозрачность картинки в процентах для всех браузеров. "Лишние" отступы вокруг форм. "Удваивание" рамок в таблицах и применение стиля к внутренним ячейкам.
1. Internet Explorer и картинка с шириной, заданной в процентах, в ячейке таблицы
Если картинка внутри ячейки таблицы больше, чем сама ячейка, альтернативные браузеры нормально отмасштабируют её кодом вроде
<table width="100%">
<tr><td><img src="image.jpg" width="100%"></td></tr>
</table>
однако, в IE6 - IE8 всё разъедется. Помогает стилевое указание вида
<style type="text/css">
TABLE {table-layout: fixed;}
</style>
2. Прозрачность картинки в процентах для всех браузеров
filter: alpha(opacity=50); /* IE 5.5 и выше */ -moz-opacity: 0.5; /* Mozilla 1.6 и ниже */ -khtml-opacity: 0.5; /* Konqueror 3.1 и выше, Safari 1.1 и выше */ opacity: 0.5; /* Браузеры с CSS3 - Mozilla 1.7b и выше, Firefox 0.9 и выше */
Только перечисление в стиле всех указанных выше директив более-менее гарантирует, что картинка действительно будет полупрозрачной в разных браузерах. Разумеется, можно создать отдельный класс с этими директивами.
<style type="text/css">
.oppa {
margin:0px;
filter: alpha(opacity=50);-moz-opacity: 0.5;-khtml-opacity: 0.5;opacity: 0.5;
}
</style>
<img class="oppa" src="lamp.gif" width="64" height="64" alt="Лампочка Ильича">

3. "Лишние" отступы вокруг форм
Для многих блочных объектов, особенно форм, полезно всегда указывать в стиле нулевой отступ margin:
FORM { margin: 0; }
4. "Удваивание" рамок в таблицах и применение стиля к внутренним ячейкам
Мой традиционный рецепт. Часто при разметке таблиц с помощью стилей во-первых, стилем отображаются только внешние рамки таблицы, а внутренние нет, во-вторых, внутренние рамки "удваиваются":
<style type="text/css">
.tab1 {
border: 1px solid blue;
}
</style>
<table width=100% cellpadding=4 cellspacing=0 border=1 class="tab1"><tr><td>
<p>Содержимое ячейки</p>
</td></tr>
<tr><td>Ещё ячейка</td></tr>
</table>
|
Содержимое ячейки |
| Ещё ячейка |
Во-первых, применить правила CSS нужно как к тегу <table>, так и к <td> и <th>.
Во-вторых, избежать удваивания рамок позволяет включение в класс таблицы директивы
border-collapse: collapse;
<style type="text/css">
.tab1 {
border: 1px solid blue;
border-collapse: collapse;
}
</style>
<table width=100% cellpadding=4 cellspacing=0 border=1 class="tab1"><tr><td class="tab1">
<p>Содержимое ячейки</p>
</td></tr>
<tr><td class="tab1">Ещё ячейка</td></tr>
</table>
|
Содержимое ячейки |
| Ещё ячейка |
19.04.2010, 17:09 [12878 просмотров]

