Как лучше всего отображать пары имя-значение с помощью CSS?

Должен ли я все равно использовать таблицы?

Код таблицы, который я заменяю:

<table>
    <tr>
        <td>Name</td><td>Value</td>
    </tr>
    ...
</table>

Из того, что я читал, у меня должно получиться что-то вроде

<label class = "name">Name</label><label class = "value">Value</value><br />
...

Мы очень ценим идеи и ссылки на онлайн-образцы. Я разработчик, выходящий из глубины моей дизайнерской мысли.

Обновлено: Мне нужно иметь возможность отображать данные пользователю и редактировать значения в отдельной (но почти идентичной) форме.

Вы можете объяснить, что это за страница? Например. это форма или у вас есть данные, которые нужно отобразить в «таблице»? ;)

Till 14.09.2008 18:18

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

andyuk 15.09.2008 02:13
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
37
2
31 535
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

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

Если вы не хотите использовать таблицы, лучше всего использовать списки определений (<dl> and <dt>). Вот как их стилизовать, чтобы они выглядели как ваш старый макет <td>. http://maxdesign.com.au/articles/definition/

Ответ принят как подходящий

Я думаю, что списки определений семантически близки к парам имя / значение.

<dl>
    <dt>Name</dt>
    <dd>Value</dd>
</dl>

Списки определений - неправильно используются или неправильно понимаются?

Значение будет отступом и помещено в новую строку Имя Значение

Fire Lancer 14.09.2008 18:22

Это зависит от таблицы стилей. Взгляните на ссылку в моем ответе и убедитесь сами.

Espo 14.09.2008 18:24

Как сказал Эспо, списки определений можно стилизовать по своему усмотрению. Вы можете легко переопределить стиль новой строки / отступа по умолчанию.

macbirdie 14.09.2008 18:26

Я думаю, что ваш ответ значительно выиграет от добавления CSS, чтобы он выглядел как таблица.

Nacht 31.01.2017 04:22

используйте свойство float:, например: css:

.left {
  float:left;
  padding-right:20px
}

html:

<div class = "left">
 Name<br/>
 AnotherName
</div>
<div>
 Value<br />
 AnotherValue
</div>

Этот подход имеет плохую доступность, так как имя / значения несовместимы. Также проблема, если происходит перенос слов, так как имена и значения не совпадают.

Chris Walsh 18.08.2017 12:36

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

Но это вроде как не стол. Я полагаю, что в веб-формах ASP.NET это может быть разница между GridView и DetailsView.

Iain Holder 14.09.2008 18:36

Если я пишу форму, я обычно использую это:

<form ... class = "editing">
    <div class = "field">
        <label>Label</label>
        <span class = "edit"><input type = "text" value = "Value" ... /></span>
        <span class = "view">Value</span>
    </div>
    ...
</form>

Затем в моем css:

.editing .view, .viewing .edit { display: none }
.editing .edit, .editing .view { display: inline }

Затем с помощью небольшого количества JavaScript я могу переключить класс формы с редактирования на просмотр.

Я упоминаю об этом подходе, так как вы хотели отображать и редактировать данные с почти одинаковым макетом, и это способ сделать это.

Как и macbirdie, я был бы склонен отмечать такие данные как список определений, если только содержимое существующей таблицы не может быть оценено как табличное содержимое быть.

Я бы не стал использовать тег label так, как вы предлагаете. Взгляните на объяснение тега метки @ https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label - он действительно предназначен для того, чтобы вы могли сосредоточиться на связанном с ним элементе управления. Также избегайте использования общих div и span, поскольку с семантической точки зрения они слабые.

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

Списки горизонтальных определений работают довольно хорошо, т.е.

<dl class = "dl-horizontal">
  <dt>ID</dt>
  <dd>25</dd>
  <dt>Username</dt>
  <dd>Bob</dd>
</dl>

Класс dl-horizontal предоставляется фреймворком Bootstrap CSS.

Из Bootstrap4:

<dl class = "row">
  <dt class = "col">ID</dt>
  <dd class = "col">25</dd>
</dl>
<dl class = "row">
  <dt class = "col">Username</dt>
  <dd class = "col">Bob</dd>
</dl>

Это прекрасно работает, если у вас есть CSS-фреймворк начальной загрузки.

Alex Beynenson 04.08.2017 16:03

Просто обновление dl-horizontal сбрасывается в bootstrap 4; но есть альтернатива (getbootstrap.com/docs/4.0/migration/#typography)

mumair 06.08.2019 08:52

Другие вопросы по теме