Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DIV'ы и друзья товарищи IE с Opera

563
10 июня 2008 года
MrLinker
249 / / 17.09.2006
Есть два блока - одни под другим и оба одинаковой ширины.
Но у верхнего блока бордюр 1px, а у нижнего 5px

IE отображает все красиво и блоки равной ширины.
Opera отображает нижний блок шире на двойную дозу бордюра.

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

И еще...
В IE три рядом стоящие вертикальные колонки отображаются с зазорами, а в Opera в притык, т.е. как надо. Как добиться кроссбраузерности?
563
10 июня 2008 года
MrLinker
249 / / 17.09.2006
Один выход первой проблемы прост.
Второй блок делается из двух.
22K
10 июня 2008 года
likeopera
105 / / 18.04.2008
Вертикальные колонки в таблице? border-collapse:collapse
А по поводу дивов, так Опера правильно реагирует. Надо или дивы вкладывать или ширину задавать с учетом.
563
11 июня 2008 года
MrLinker
249 / / 17.09.2006
На самом деле, со всем этим делом бардак творится.......
А вообще, каким методом лучше всего позиционировать блоки при бестабличной верстке?
Если кто знает, подскажите хорошие линки.
22K
12 июня 2008 года
likeopera
105 / / 18.04.2008
Все зависит от задачи. Позиционирование в одном случае нужно применять, обтекание (float) в другом.
12
12 июня 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: MrLinker
Есть два блока - одни под другим и оба одинаковой ширины.
Но у верхнего блока бордюр 1px, а у нижнего 5px


Они уже не могут быть одинаковой ширины:

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/2002/REC-xhtml1-20020801/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Тест</title>
<style type="text/css">
.block1 {
    width: 200px;
    height: 200px;
    border: 1px solid green;
    margin: 0 4px;
}
.block2{
    width: 200px;
    height: 200px;
    border: 5px solid red;
}
</style>
</head>

<body>
</body>
<div class="block1">1
</div>
<div class="block2">1
</div>
</html>

А что тебе нужно должно выглядить вот так:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/2002/REC-xhtml1-20020801/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Тест</title>
<style type="text/css">
.block1 {
    width: 208px;
    height: 200px;
    border: 1px solid green;
}
.block2{
    width: 200px;
    height: 200px;
    border: 5px solid red;
}
</style>
</head>

<body>
</body>
<div class="block1">1
</div>
<div class="block2">1
</div>
</html>

Цитата: MrLinker

Если кто знает, подскажите хорошие линки.


http://www.w3.org/
http://shaelf.ru/book.php
http://alekciy.ru/images/rtfm_noobs.jpg

22K
12 июня 2008 года
likeopera
105 / / 18.04.2008
Мне особенно третья ссылка понравилась :)
563
12 июня 2008 года
MrLinker
249 / / 17.09.2006
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/2002/REC-xhtml1-20020801/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Тест</title>
<style type="text/css">
.block1 {
    width: 208px;
    height: 200px;
    border: 1px solid green;
}
.block2{
    width: 200px;
    height: 200px;
    border: 5px solid red;
}
</style>
</head>

<body>
</body>
<div class="block1">1
</div>
<div class="block2">1
</div>
</html>

Это понятно.
А как быть в том случае, если ширина задана в относительных величинах?
832
12 июня 2008 года
Carpus
390 / / 14.04.2005
Цитата: MrLinker

А как быть в том случае, если ширина задана в относительных величинах?


А в любом случае проще вложить эти два блока в отдельный контейнер, задать выравнивание по центру и не мучаться с вычислением размеров границ и блоков :)

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/2002/REC-xhtml1-20020801/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Тест</title>
<style type="text/css">
* {
    margin: 0;
    padding: 0;
    border: none;
}
div {
    margin: 0 auto;
    padding: 0;
}
.block1 {
    width: 40%;
    height: 200px;
    border: 1px solid green;
}
.block2{
    width: 40%;
    height: 200px;
    border: 5px solid red;
}
</style>
</head>

<body>
<div id="wrapper">
    <div class="block1">1
    </div>
    <div class="block2">1
    </div>
</div>
</body>
</html>
12
12 июня 2008 года
alekciy
3.0K / / 13.12.2005
Цитата: MrLinker

Это понятно.
А как быть в том случае, если ширина задана в относительных величинах?


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

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

39K
13 июня 2008 года
Макар Лебедев
10 / / 13.06.2008
Редактор Dreamweaver вам в помощь.
22K
13 июня 2008 года
likeopera
105 / / 18.04.2008
Руками надо писать.
12
14 июня 2008 года
alekciy
3.0K / / 13.12.2005
Редактор Dreamweaver вам в помощь.


Для домохозяет уровня народ.ру безусловно. Однако веб разраб (любого уровня) должен писать код сам. Визуализатор - любой браузер. Для дебага используем лису с FireBug-ом.

22K
14 июня 2008 года
likeopera
105 / / 18.04.2008
А если ищем приключений, то есть еще Стрекоза и ИЕ девелопер тулбар :)
832
14 июня 2008 года
Carpus
390 / / 14.04.2005
Цитата: alekciy
Для дебага используем лису с FireBug-ом


... IE с Developer Toolbar'ом, Opera с Dragonfly'ем

22K
14 июня 2008 года
likeopera
105 / / 18.04.2008
(Для тех, кто немного в танке).
Отдельно стрекозу можно скачать из блога разработчиков (новая версия выходит еженедельно).
http://my.opera.com/dragonfly/blog/
Как ее интегрировать в Оперу можно прочитать на http://operafan.net/forum/index.php?topic=4761.0 или http://html-coder.org.ru/opera-dragonfly/
563
17 июня 2008 года
MrLinker
249 / / 17.09.2006
Спасибо за ответы.
Но я никак не могу прийти к пониманию некоторых вещей.

Вот пример:

Код:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style>
* {
    margin: 0;
    padding: 0;
}

#left {
    padding: 10px;
    margin: 0px;
    border-style: solid;
    border-width: 1px;
    border-color: #666;
    width: 200px;
    float: left;
    }  

#right {
    padding: 10px;
    margin: 0px 0px 0px 220px;
    border-style: solid;
    border-width: 1px;
    border-color: #666;    
    }  

</style>
</head>

<body>

<div id="left">
left
</div>

<div id="right">
right
</div>

</body>

</html>


В Opera два блока располагаются в притык.
В IE c зазором в 20px.

Почему так происходит мне понятно - Opera расширяет бокс наружу, а IE внутрь.

Я не могу понять, как сделать так, чтобы в обоих браузерах они были одинаковой ширины и с равными зазорами?

А вообще, подход IE мне нравится.
Ты указал значение width для элемента, и никакие манипуляция с ним не влияют на его размер.
Что-то мне подсказывает, что это более разумный подход...
Интересно узнать мнение других по этому поводу.
22K
17 июня 2008 года
likeopera
105 / / 18.04.2008
Подход ИЕ противоречит спецификации.
832
17 июня 2008 года
Carpus
390 / / 14.04.2005
Цитата: MrLinker

Почему так происходит мне понятно - Opera расширяет бокс наружу, а IE внутрь.


Не совсем так. IE по разному рассчитывает размер блоков в режиме совместимости и в стандартном режиме. В первом случае в размеры блока не входят величина отступа и рамки. Например, если мы зададим ширину в 200px и отступ (padding) 10px в режиме совместимости общая ширина блока будет 200px, а в стандратном режиме - 220px.

Цитата:

Я не могу понять, как сделать так, чтобы в обоих браузерах они были одинаковой ширины и с равными зазорами?


Нужно всего лишь переключить браузер в стандартный режим, добавить доктайп - вот такой, например <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">.
Подробнее о переключении режимов для различных браузеров тут.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог