CSS — Настройка минимальной и максимальной ширины

#html #css

#HTML #css

Вопрос:

Вместо определения фиксированной ширины div, я хочу указать минимальную ширину (если содержимое намного меньше) и максимальную ширину (если содержимое больше, скройте дополнительное содержимое).

Например, мой html:

 <div class="container">
    <div class="test">x</div>
</div>
  

CSS:

 .container{
    padding:10px; 
    border:1px solid red; 
    width:200px; 
    text-align:center;
}

.test{
    border:1px solid green; 
}
  

Как вы можете видеть, контейнер имеет фиксированную ширину 200 пикселей. Я хочу разместить тестовый div в центре контейнера. Поскольку в тестовом классе есть только одна буква, я хочу, чтобы размер тестового класса был не менее 50 пикселей, но не более 100 пикселей.

Я пробовал min-width и max-width, но не смог заставить это работать. Вот ссылка на jsfiddle.

Спасибо за любую помощь.

Ответ №1:

Проблема в том, что <div> это элементы уровня блока, которые не изменяют размер автоматически в соответствии со своим содержимым. Что вы можете сделать, так это заставить ваш div вести себя так, table-cell у которых есть возможность изменять размер, и установить для него min-width и max-width .

 .test {
min-width: 200px;
max-width:1000px;
display: table-cell;
word-wrap: break-word;
word-break: break-all;
}
  

Ответ №2:

Поехали!

С помощью margin:0 auto; вы можете сделать его централизованным 🙂 (Просто удалите его, если вы не хотите, чтобы он располагался по центру)

http://jsfiddle.net/SnhhK/4/

Комментарии:

1. Спасибо, но min-width на самом деле не работает в примере. Я хочу сделать это, если содержимое внутри теста очень мало похоже на 1 символ, тогда минимальная ширина должна составлять 50 пикселей. если содержимое больше и не помещается, то ширина тестового div должна увеличиться, но не должна превышать 100 пикселей. Надеюсь, вы поняли мою точку зрения.

2. Хорошо, если это так (если я правильно понимаю: P), то вам не нужна минимальная ширина, просто установите ширину, а затем отобразите:block. Я обновил этот пример jsfiddle.net/SnhhK/5

Ответ №3:

Использование min и max-width для элемента,test сработало для меня.

http://jsfiddle.net/Kyle_Sevenoaks/SnhhK/1/