Nano Hash - криптовалюты, майнинг, программирование

Элементы не переносятся внутри div фиксированной ширины

У меня есть этот простой html со стилем:

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
#buttons { width:300px; max-width:300px; border-width:1px; white-space:normal;  border-style:solid; }
#buttons span { cursor:default; padding:10px; white-space: nowrap; }
</style>
</head>

<body>

<nav id="buttons">
    <span>Some Button</span><span>Button</span><span>A longer button</span><span>Another button</span><span>Click me first</span><span>Button</span></nav>

</body>
</html>

Элемент основного блока (#buttons) должен иметь фиксированную ширину, но содержащие элементы span генерируются динамически и имеют переменную длину. Я хочу, чтобы эти элементы "span" обертывались и оставались внутри блока, независимо от того, сколько их. Таким образом, в основном элемент основного блока должен расширяться по вертикали, если это необходимо.

Прямо сейчас они расширяются горизонтально, переполняя основной контейнер.

По какой-то странной причине, если я поставлю пробелы между встроенными элементами span, это сработает. Но я не могу сделать это на производстве (они прикреплены к DOM библиотекой javascript).

30.09.2011

Ответы:


1

Я добавил биты жирным шрифтом в ваш css:

#buttons { width:300px; max-width:300px; border-width:1px; white-space:normal;  border-style:solid; **overflow: auto;** }
#buttons span { **float: left;** cursor:default; padding:10px; white-space: nowrap; }

Посмотреть в действии можно на http://jsfiddle.net/S9rz8/.

Думаете, это то, чего вы хотите?

30.09.2011

2

Этот ответ, если вам нужно более одного элемента в строке.

Если вы добавите float: left; к стилю промежутков, они будут переноситься. Добавьте position: absolute; к #buttons, чтобы контейнер имел высоту.

http://jsfiddle.net/TNmrZ/1/

30.09.2011

3

Я думаю, что оба ваших элемента считаются inline.
Сделайте их display:block, и все должно работать нормально.

30.09.2011
  • Это предполагает, что ОП хочет по одному элементу в строке, что неясно из вопроса. 30.09.2011
  • Навигация считается блочной в html5. А создание блоков spans просто поставит их один под другим, но я хочу, чтобы они отображались в строке, только при переполнении nav -> переходить на новую строку. 30.09.2011
  • Я вставил какой-то фиктивный текст, извините. :) На самом деле это настраиваемые кнопки с пользовательским текстом на них. 30.09.2011
  • Смотрите мой ответ для более чем одного элемента в строке. :) 30.09.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..