Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Дефект при использовании CSS
 
 автор: Владимир55   (16.03.2012 в 15:53)   письмо автору
23.3 Кб
 
 

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

А код такой:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Новая страница 1</title>

<style type="text/css">

#f3 {width: 337px}
#f4 {background-image:url('images/03.jpg')}

#imag3 {
    width: 337px
    height:35px
    border:none;
}

.v2 { 
    font-family:    Arial, Helvetica, sans-serif;
    text-align:     center;
    font-size:      12px; 
    font-style:     normal; 
    color:             #FFFFFF;



.v3 { 
    color:#FFFFFF; 
    text-decoration:none;



td {
    margin:0;
    padding:0;
    border:none;
    vertical-align:middle}

#second {
    position:absolute; 
    top:10px; 
    text-align:center; 
    cellpadding:0; 
    border:none;
    left:50%;     
    width: 750px;
    margin-left:-375px;
}

</style>

</head>

<body>  
<p style="padding-top:50px;">Первая строка</p>  

<table id="second">
    <tr>
        <td id="f3"><img src="images/Slice03.jpg" alt="Фон"  id=”imag3”/></td>
        <td id="f4"><p class="v2">Используем CSS - разрыв фона </p></td>
    </tr>
</table>

<div align="center">
<table border="0" width="750" cellpadding="0" style="border-collapse: collapse">
    <tr>
        <td width="337"><img border="0" src="images/Slice03.jpg" alt="Фон"  width="337" height="35"/></td>
        <td style="background-image:url('images/03.jpg')">
        <p class="v2" style="text-align: center">В этой таблице фон без дефектов</p></td>
    </tr>
</table>
</div>

  Ответить  
 
 автор: Lelik   (16.03.2012 в 16:04)   письмо автору
 
   для: Владимир55   (16.03.2012 в 15:53)
 


#second {
    position:absolute; 
    top:10px; 
    text-align:center; 
    cellpadding:0; /* вместо этого следует использовать border-collapse, так как в цсс cellpadding не существует */
    border-collapse: collapse;
    border:none;
    left:50%;     
    width: 750px;
    margin-left:-375px;

  Ответить  
 
 автор: ЯСА   (16.03.2012 в 16:14)   письмо автору
 
   для: Lelik   (16.03.2012 в 16:04)
 

Вы пишите:

2. Сначала, значит, следует установить border-collapse: collapse;

3. А сразу следующей строкой надо, значится, убрать на фиг этот "сколлапсированный" бордер - border: none;

4. Спрашивается, а зачем "коллапсировать" то, чего не будет? :-)
-----

Правильный ответ: вместо атрибута CELLPADDING можно использовать запись в CSS вида
table td, table th {padding: нужное_значение}

или /* это для Владимира55 - он же всё-равно спросит */
#id_table td, #id_table th {padding: нужное_значение}
или
table.class_name td, table.class_name th {padding: нужное_значение}

Атрибут CELLSPACING вообще ничем заменить нельзя.

Свойство border-collapse к паддингу ячеек таблицы не имеет никакого отношения.

[поправлено модератором]

  Ответить  
 
 автор: Владимир55   (16.03.2012 в 17:38)   письмо автору
 
   для: ЯСА   (16.03.2012 в 16:14)
 

Как я понял, CELLSPACING следует удалить из идентфикатора #second. Получится
#second {
    position:absolute; 
    top:10px; 
    text-align:center; 
    border:none;
    left:50%;     
    width: 750px;
    margin-left:-375px;
}


Проблема снялась
border-collapse: collapse;


или /* это для Владимира55 - он же всё-равно спросит */
#id_table td, #id_table th {padding: нужное_значение}


Не понимаю, как нужно сформировать этот идентфикатор. Не работает вот так:
#second td, #second {padding:0}


Всё же, хотелось бы понять.

  Ответить  
 
 автор: ЯСА   (16.03.2012 в 18:54)   письмо автору
 
   для: Владимир55   (16.03.2012 в 17:38)
 

1. Атрибут CELLPADDING устанавливает единые для ВСЕХ ячеек внутренние отступы.
А ячейки бывают в таблице ДВУХ типов - <TD> и <TH>.

2. Поэтому, чтобы полностью сымитировать действие атрибута CELLPADDING, надо прописать правила и для <TD>, и для <TH>
Я так и написал
#id_table td, #id_table th {padding: нужное_значение}

Вы пропустили две буковки th.

В вашем примере тегов TH вроде бы нет, поэтому запятая и второй селектор вовсе не нужны..

[поправлено модератором]

  Ответить  
 
 автор: Владимир55   (16.03.2012 в 19:04)   письмо автору
 
   для: ЯСА   (16.03.2012 в 18:54)
 

В вашем примере тегов TH вроде бы нет, поэтому запятая и второй селектор вовсе не нужны.

Это понятно. Непонятно другое - вот это как записать:
#id_table td {padding:0}


#id_table - нет у меня такого идентификатора. Как это будет в моём случае?

  Ответить  
 
 автор: ЯСА   (17.03.2012 в 07:24)   письмо автору
 
   для: Владимир55   (16.03.2012 в 19:04)
 

Нет, говорите, у вас id_table?
Придуриваетесь?

А что есть?

Есть <table id="durak"> - пишите #durak td
Есть <table id="esli_net_uma"> - пишите #esli_net_uma td
Есть <table id="idi_pasti_korov"> - пишите #idi_pasti_korov td
...

Как ещё вам объяснить, что в качестве селектора можно использовать существующий идентификатор таблицы с символом решётки впереди - в общем виде #id_table?

  Ответить  
 
 автор: Владимир55   (17.03.2012 в 11:49)   письмо автору
 
   для: ЯСА   (17.03.2012 в 07:24)
 

качестве селектора можно использовать существующий идентификатор

Так я это давно уже опробовал и Вам ниписал (автор: Владимир55 (16.03.2012 в 17:38) , что это не дало результата.

<table id="second"> 

#second td {padding:0} 


Я то думал, что здесь какая-то еще тонкость.

  Ответить  
 
 автор: ЯСА   (16.03.2012 в 16:07)   письмо автору
 
   для: Владимир55   (16.03.2012 в 15:53)
 

1. cellpadding существует только в виде атрибута тега <TABLE>, свойства стиля cellpadding в природе нет.

2. Аналогично обстоит дело и с cellspacing.

3. Дефолтные значения двух этих атрибутов тега <TABLE> ненулевые.

4. Сумма двух cellpadding'ов и одного cellspacing'а и формирует ширину "разрыва фона" во второй таблице.

Об этой проблеме написано ВЕЗДЕ, где только хоть что-то про HTML написано.

[поправлено модератором]

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования