LINUX.ORG.RU

HTML, CSS: Горизонтальная линия из квадратов


0

1

Здравствуйте!


Нужно сделать следующее. Нужно нарисовать на экране прямоугольник, размером 250x25pix. И в него надо засунуть 10 квадратов 25x25pix. (Каждый квадрат будет иметь уникальный id).

Вопрос. Как блин это сделать?

Я пробую такой код:

<html>
<head>

<style type="text/css">
.lb_field {
 margin: 0;
 padding: 0;
 width: 250px;
 height: 100px;
 background: #50F050;
 color: #010101;
}

.lb_field_row {
 margin: 0;
 padding: 0;
 width: 250px;
 height: 25px;
 background: #805050;
}

.lb_cell {
 margin: 0;
 padding: 0;
 width: 25px;
 height: 25px;
 color: #505005;
 background: #108010;
}
</style>
</head>

<body>

<div id="lb_field" class="lb_field">
 <div class="lb_field_row" id="lb_field_row_0">
  <span class="lb_cell" id="lb_field_cell_0_0">+</span>
  <span class="lb_cell" id="lb_field_cell_0_1">+</span>
  <span class="lb_cell" id="lb_field_cell_0_2">+</span>
  <span class="lb_cell" id="lb_field_cell_0_3">+</span>
  <span class="lb_cell" id="lb_field_cell_0_4">+</span>
  <span class="lb_cell" id="lb_field_cell_0_5">+</span>
  <span class="lb_cell" id="lb_field_cell_0_6">+</span>
  <span class="lb_cell" id="lb_field_cell_0_7">+</span>
  <span class="lb_cell" id="lb_field_cell_0_8">+</span>
  <span class="lb_cell" id="lb_field_cell_0_9">+</span>
 </div>
</div>

</body>
</html>

В результате, квадраты 25x25 не появляются. Вместо квадратов видно одно знакоместо, занимаемое символом «+». Вот так:

http://rghost.ru/3521969/image.png

Если же тег <span> заменить на <div>, то получается такое:

http://rghost.ru/3522037/image.png

То есть, квадраты появляются, но после каждого <div> браузер автоматом ставит перевод строки.

Вопрос: Как сделать горизонтальную линию из 10 квадратов?


Советую не копипастить, а «нарисовать» при помощи javascript. В CSS помогут стили display: «table-row», «table-cell» и т.п.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от xintrea

Врут. Но:

<style>
ul {list-style-type: none; margin:0; padding: 0;}
li {border:1px dotted red;float:left; width:25px; height:25px;}
</style>

<ul>
<li>1</li>
<li>2</li>
...
<li>10</li>
</ul>

Бордюр добавлен для теста.

thesis ★★★★★
()

display:table-cell; в lb_cell

isden ★★★★★
()

Все, разобрался.

Для стиля lb_field добавил display: table;

Для стиля lb_field_row добавил display: table-row;

Для стиля lb_cell добавил display: table-cell;

И заработало. Главное, чтоб размер таблицы соответсвовал размеру, занимаемому строками и ячейками.

xintrea
() автор топика
Ответ на: комментарий от xintrea

Еще одно решение - просто для класса lb_cell прописать свойство:

float: left;

Они иногда «всплывают» не там, где надо.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

> на ослов забили? :)

Блин, с табличными свойствам ослы 6 и 7 не работают.

float: left;

говорят, пашет.

xintrea
() автор топика
Ответ на: комментарий от xintrea

Да всплывал у меня «косяк», когда подряд шли три div'а с float: left. Смотрелось криво.

И да, разве на мамонтоподобных «ишаков» не забили уже все? Они ведь даже SVG не поддерживают...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от xintrea

если ширина в пикселах, а не в процентах, то и шестой должен схавать

либо можно еще display:inline-block использовать вместо float:left только между блоками не должно быть текстовых узлов, комментариев

типа, strip-space из xsl: <li id=«01» style=«inline-block»>01</li

<li id=«02» style=«inline-block»>02</li
...</li></ul>

anonymous
()
Ответ на: комментарий от gobot

> display: block; float: left; overflow: hidden

Зачем block?

block -   Элемент показывается как блочный. Применение этого значения для встроенных элементов, например тега <span>, заставляет его вести подобно блокам — происходит перенос строк в начале и в конце содержимого.

Мне как раз перенос не нужен.

xintrea
() автор топика
Ответ на: комментарий от gobot

У блоков со значением float отличных none свойство display игнорируется (кроме none).

Deleted
()

С флоатами будет работать, но если у тебя на самом деле таблица, то почему туда таблицу и не впихнуть?

Deleted
()
Ответ на: комментарий от Deleted

Потому что любят у нас из крайности в крайность бросаться: если сказали, что табличная верстка не тру, то зн-т таблиц быть не должно вовсе (даже если семантика требует таблицы).

anonymous
()
Ответ на: комментарий от Eddy_Em

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

anonymous
()
Ответ на: комментарий от Eddy_Em

> И да, разве на мамонтоподобных «ишаков» не забили уже все? Они ведь даже SVG не поддерживают...

Среднестатический пользователь аля домохозяйка очень сильно расстроится если в его любимом браузере не отобразится сайт X и обвинит он конечно же Вас. Слушать про необходимость поддержки SVG и т.п. он не станет и будет прав ибо поближе к возможностям и потребностям среднестатических пользователей надо быть.

anonymous
()
Ответ на: комментарий от Eddy_Em

Если у целевой аудитории проблемы с SVG, то зн-т вы выбрали неправильные инструменты. Возможно лучше остановить свой выбор на flash и не важно, что лично вам он не нравится или вы его не знаете - главное чтобы пользователь был доволен.

anonymous
()
Ответ на: комментарий от anonymous

Мне проще уведомить пользователя об угрозе безопасности и попросить поставить любой другой браузер или обновить «осла» хотя бы до восьмой версии (в ней SVG работает, но очень криво).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> Мне проще уведомить пользователя об угрозе безопасности и попросить поставить любой другой браузер или обновить «осла»

Пользователь прям из-за вашей хотелки так и побежал устанавливать :)

xintrea
() автор топика
Ответ на: комментарий от xintrea

Зависит от того, насколько им сайт нужен :}

Deleted
()
Ответ на: комментарий от xintrea

Мне дали задание: сделать «красиво». Я сделал. То, что для просмотра надо просто обновиться - не мои проблемы, т.к. для поддержки старья пришлось бы слишком уж бешеный трафик слать...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> Мне дали задание: сделать «красиво». Я сделал. То, что для просмотра надо просто обновиться - не мои проблемы

Обычно в требованиях сразу обговаривается, что должны поддерживаться такие-то браузеры. Поэтому «я сделал, а все остальное ваши проблемы» не пройдет.

anonymous
()
Ответ на: комментарий от anonymous

Мне требования к браузерам не предъявляли. Если бы мне сказали сделать что-то, что должно работать хоть в 10м «ишаке», я бы от работы отказался.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Заказчик может и не разбираться в таких вопросах как поддержка разных браузеров, в этом случае вы сами должны поднять такой вопрос. Иначе потом можно хлопот не обобраться...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.