Я использую bootstrap 2.0 из twitter и не знаю, как сделать его отзывчивым.
- Как удалить элементы в режиме мобильного/малого экрана?
- Как заменить элементы (например, заменить большой снимок на меньшую)?
- Измените a
<h2>
на<h5>
? и др.
Я использую bootstrap 2.0 из twitter и не знаю, как сделать его отзывчивым.
<h2>
на <h5>
? и др.Скрыть элементы можно с помощью:
display: none;
visibility: hidden;
Надеюсь, вы используете LESS или SASS, чтобы вы могли просто указать:
@mixin hidden {
display: none;
visibility: hidden;
}
А затем легко перемешать в случае необходимости:
footer {
@include hidden;
}
Просто примените их к любому селектору в соответствующем запросе на медиа. Кроме того, поймите, что медиа-запросы каскадируются на более мелкие медиа-запросы. Если вы спрячете элемент в широком медиа-запросе (размер планшета), то элемент останется скрытым по мере сокращения веб-сайта.
Bootstrap не предлагает изменение размера изображения при сжатии экрана, но вы можете вручную изменить размеры изображений с помощью CSS в запросах мультимедиа.
Но конкретное решение, которое мне нравится, из этого сообщения в блоге: http://unstoppablerobotninja.com/entry/fluid-images/
/* You could instead use ".flexible" and give class="flexible" only to
images you want to have this property */
img {
max-width: 100%;
}
Теперь изображения будут отображаться только в полном объеме, если они не превышают их родительский контейнер, но они будут сжиматься, поскольку их родительский элемент (например, <div>
, в котором они находятся) сжимается.
Вот демо: http://unstoppablerobotninja.com/demos/resize/
Чтобы фактически заменить изображения, вы можете поменять фоновое изображение на CSS. Если .logo
имеет background: url("logo.png");
, вы можете просто указать новое фоновое изображение в медиа-запросе с помощью .logo { background: url("small-logo.png");
Если это связано с тем, что вы хотите изменить размер заголовка, не делайте этого. H2 имеет семантическое значение: оно не так важно, как H1 и более важно, чем H3.
Вместо этого просто укажите новые размеры для элементов h1-h6 в запросах на медиа, поскольку ваш сайт станет меньше.
@media (max-width: 480px) {
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: 80%;
}
}
В течение последних нескольких дней я играл с чувствительными частями бутстрапа, взгляните на /less/responsive.less, чтобы получить представление о том, как вы можете использовать отзывчивые функции бутстрапа.
В основном вы смотрите на ширину/высоту браузера, чтобы определить, какие свойства css применяются к странице. Так, например, если вы хотите изменить h2, когда пользователь использует меньшее устройство, вы бы сделали что-то вроде этого:
@media (max-width: 480px) {
h2 { font-size: 15px; }
}
Вы можете сделать это с любым стилем, который хотите повлиять, когда изменяется размер экрана.
Вы можете заменить некоторые элементы, используя методы замены css, а затем просто разные стили влияют на вещи различной ширины. Или вы можете использовать jquery или, возможно, response.js, чтобы сделать это. Я все еще играю с этой частью.
Для чувствительных изображений у вас может быть
.responsive-image { max-width:100%; height:auto; }
и вы можете использовать это как
<img src="testimage.jpg" border="0" alt="blank image" class="responsive-image">
Использовать tinynav https://github.com/viljamis/TinyNav.js
Это преобразует навигацию <ul>
и <ol>
в поле выбора для небольших экранов.
Что касается вашего первого вопроса - я не уверен, что это было доступно, когда вы спрашивали, но у Bootstrap есть классы "скрытый телефон", "видимый рабочий стол" и т.д., чтобы обрабатывать скрытие элементов на экранах разного размера. Просто добавьте класс .hidden-phone к элементу, и он исчезнет на экранах размером меньше 768 пикселей.
ИЗМЕНИТЬ
После выпуска бутстрапа 3 документация 2.3.2 теперь находится по адресу:
http://getbootstrap.com/2.3.2/scaffolding.html#responsive
Новая документация 3.x:
Я думаю, что bootstrap имеет встроенные функции для этого (в responsive-utilities.less
):
<a href="#">
<span class="visible-desktop">Click here to get more information</span>
<span class="visible-tablet">More information</span>
<span class="visible-phone">Info</span>
</a>