Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2021, 22:56
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Зависимость длины строки от ширины окна
Всем привет. Подскажите как решить задачу. Есть горизонтальный список.
<ul>
<li><a class="" href="">Один</a></li>
....
<li><a class="" href="">N</a></li>
<i class="icon-more"></i> // Вертикальное троеточие
</ul>


Нужно при уменьшении экрана(окна) прятать те пункты,которые не помещаются. Тоесть как то высчитывать расстояние от троеточия до первого от него пункта, что ли. Ума не приложу. Но видел тут. При уменьшении до 480 где то, появляется троеточие...
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2021, 06:16
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

ureech,
Это называется адаптивный/отзывчивый дизайн (responsive design). Может слышал, адаптивный сайт, адаптивный макет, адаптивная верстка и тд. Это когда сайт на разных устройствах/разрешениях выглядит по-разному.

Например, открой этот форум на смартфоне и поймешь как это неудобно, когда сайт не адаптивный.

Адаптивный дизайн состоит, как правило, из css-правил @media (медиа-запросы) и специального meta-тега для мобильных устройств <meta name="viewport" content="width=device-width, initial-scale=1">.

При адаптивном дизайне css делится, как правило, на несколько классов устройств (breakpoints), например:
// X-Small devices (portrait phones, less than 576px)
// No media query for `xs` since this is the default in Bootstrap

// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }

// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { ... }

// Large devices (desktops, 992px and up)
@media (min-width: 992px) { ... }

// X-Large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }

// XX-Large devices (larger desktops, 1400px and up)
@media (min-width: 1400px) { ... }

Один из подходов адаптивного дизайна - сначала мобильные (mobile first) версии сайта проектируются, потом остальные.

Введение: Responsive Web Design
Меню: Responsive Top Navigation


PS: делать адаптивность через скрипт это средневековье.

Последний раз редактировалось Rise, 09.08.2021 в 06:28.
Ответить с цитированием
  #3 (permalink)  
Старый 09.08.2021, 07:36
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Rise,
я в курсе, что такое адаптивный дизайн. Вопрос в другом был. Например при ширине 720 у меня все пункты в три ряда по шесть пунктов. Предположим я спрятал все кроме шести и показал кнопку,которая будет их показывать. При ширине 680 у меня шестой не помещается и прыгает в следующий ряд, и нужно его скрыть тоже, при 640 с пятым тоже самое. Что для каждых 40пх писать правило? То есть как прятать те пункты, которые не помещаются при уменьшении экрана?

Последний раз редактировалось ureech, 09.08.2021 в 08:19.
Ответить с цитированием
  #4 (permalink)  
Старый 09.08.2021, 08:27
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

тут мне надо спрятать 5 пунктов.
А тут уже шесть
Ответить с цитированием
  #5 (permalink)  
Старый 09.08.2021, 09:01
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от ureech
я в курсе, что такое адаптивный дизайн.
Если ты в курсе, почему не можешь посмотреть медиа-запросы?

Там они примерно такие (класс active добавляется при клике на точки):
@media (max-width: 480px) {
    .sub-nav_list {
        max-height: 31px;
        overflow: hidden;
    }
    .sub-nav_list.active {
        max-height: initial;
        overflow: auto;
    }
}

Последний раз редактировалось Rise, 09.08.2021 в 09:10.
Ответить с цитированием
  #6 (permalink)  
Старый 09.08.2021, 09:20
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,709

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

А так можно поиграться с flex и размеры.
Идея примерно такая
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
<style>
body {
    font-size: 16px;
}

ul {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    height: 1em;
    overflow-y: hidden;
}
li {
    padding: 0 4px;
    margin: auto;
}
</style>
</head>
<body>
<ul>
<li><a class="" href="">Item 1</a></li>
<li><a class="" href="">Item 2</a></li>
<li><a class="" href="">Item 3</a></li>
<li><a class="" href="">Item 4</a></li>
<li><a class="" href="">Item 5</a></li>
<li><a class="" href="">Item 6</a></li>
<li><a class="" href="">Item 7</a></li>
<li><a class="" href="">Item 8</a></li>
<li><a class="" href="">Item 9</a></li>
</ul>
</body>
</html>


Смотреть надо на мобилах. На десктопе трудно размер экрана уменьшить

Последний раз редактировалось voraa, 09.08.2021 в 09:23.
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2021, 09:42
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Rise, ааа, по ширине прятать. Вот эта мысль и нужна была. Спасибушки)
Ответить с цитированием
  #8 (permalink)  
Старый 09.08.2021, 09:43
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Сообщение от voraa
Плохо делать маленькие элементы для мобил.
Это просто пример
Ответить с цитированием
  #9 (permalink)  
Старый 09.08.2021, 10:28
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от ureech
ааа, по ширине
А как еще, по радиусу что-ли... посмотри на экран он прямоугольный, там только ширина и высота. В посте#2 min-width означает ширина, а точки { ... } означают любые css-правила, если что...
Ответить с цитированием
  #10 (permalink)  
Старый 09.08.2021, 13:48
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Rise, я думал в другой плоскости). Для этого и нужна поддержка. Разве нет)?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать подстраивание блоков под изменения ширины окна Ranetka Работа 2 10.10.2018 14:11
Разное количество картинок в зависимости от ширины окна Vl@dimir Элементы интерфейса 0 15.02.2017 09:07
Добавление класса при изменении ширины браузерного окна Joannes Общие вопросы Javascript 4 07.09.2013 18:12
Динамическое получение ширины и высоты окна браузера Esseron Элементы интерфейса 2 04.04.2011 16:00
Добавление нужного css-файла в html страницу в зависимости от ширины окна браузера UglyDemon Общие вопросы Javascript 1 24.12.2010 10:30