Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Bootstrap tabs - используете все эти role и aria атрибуты?

1116  1 2 все
alex445 коренной житель16.02.23 21:13
16.02.23 21:13 
Последний раз изменено 16.02.23 21:18 (alex445)

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

https://getbootstrap.com/docs/5.2/components/navs-tabs/#us...

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


Между тем у некоторых всё и без этой херни работает, и разметка выглядит в разы чище и понятнее.

https://www.w3schools.com/bootstrap/bootstrap_tabs_pills.a...

(раздел "Toggleable / Dynamic Tabs")

Но веб-мены со всех сторон ругаются, давай нам мол роли, атрибутов побольше - хотим указывать всё до мелочей. Бутстрэп сам метался от версии к версии - то указываем, то не указываем.


Я так понимаю, сделано это было в угоду веб-долбодятлам, чтобы обычные элементы могли приобретать необычные свойства. Например, сделаем табы кнопками, а кнопки - списками. То, что и дизайн будет у каждого Васяна хоть и свой, но непременно ипануто-вырвиглазный и глючный, и код с разметкой будут представлять из себя лютое нечитаемое месиво - да насрать. Они ж все скриптизёры. То, что сайты почти у всех крупных концернов поголовно выглядят тормозным вырвиглазным говном, которое ещё местами и не работает - да насрать! Главное, Васяны дро...т вприсядку и радуются любой возможности сделать хитровые...но, чтобы не как у другого Васяна.


Каждый раз, когда сталкиваюсь с фронтэндом веба, охреневаю, насколько там всё удолбищно. И градусность удолбищности повышается с каждым годом на радость гарцующим скриптизёро-клоунам.

#1 
7495 старожил16.02.23 23:23
7495
NEW 16.02.23 23:23 
в ответ alex445 16.02.23 21:13
на домашнем мониторе оно не всегда помещается


Зачем полез в фронтенд? Ты программист! Каждый должен заниматься своим делом!


По поводу стыдного монитора и стыдной машины, начнёшь блокчейнить как Василий


и будет машина как у Василия - минивэн фв, + для прогулок по городу - бери гелик!


Опель стыдная машина, у нас ещё в школе говорили: "йедер попель ферт нен Опель"


Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#2 
AlexNek патриот17.02.23 20:06
AlexNek
NEW 17.02.23 20:06 
в ответ alex445 16.02.23 21:13

не надо просто пользовать разную фигню https://demos.devexpress.com/blazor/Tabs

#3 
alex445 коренной житель17.02.23 22:24
NEW 17.02.23 22:24 
в ответ AlexNek 17.02.23 20:06, Последний раз изменено 17.02.23 22:33 (alex445)

Да сторонние фреймворки все предлагают свои табы. А мне надо понативнее. Я вот бутстрэповские выбрал, т.к. их перенести можно между разными фреймворками. Из фреймворков я лишь сложные вещи беру, типа дата гридов.


Кстати, этот Дев Экспресс победнее будет, чем бесплатный Радзен. Например, в дата гриде нет

  • замороженных столбцов,
  • виртуализации (типа пейджинга, только для выбора страниц вручную, а чтобы они подгружались на скроллящийся список автоматически),
  • сложных столбцов,
  • сложных фильтров к столбцам (два критерия на столбец, например),
  • ещё более сложных фильтров - кастомных композитных фильтров (конструктор фильтров),
  • множественной сортировки столбцов (чтобы внутри одинаковых значений по одному столбцу, данные были отсортированы ещё и по другому столбцу, далее по третьему и т.д. - т.е. скажем отсортировал по цене по возрастанию, и если есть несколько товаров с одинаковой ценой, то вторая сортировка внутри этой группы, скажем - по названию по убиванию). Т.е. аналог скульного оператора orderby с несколькими столбцами.


Странно, вроде большоая компания, а столько всего нет. Правда, у Радзена проблемы с сохранением множественных сортировок - у них в сохраняемых настройках грида их нет. Я им написал, что явный баг же и поправить легко - добавить эту инфу из грида, где она у них всё равно сохраняется в памяти. В ответ тишина. Приходится городить свой костыль-компонент с отдельными настройками для многоколоночной сортировки, чтобы потом сохранять и, главное, восстанавливать это в интерфейсе.

#4 
alex445 коренной житель17.02.23 22:30
NEW 17.02.23 22:30 
в ответ alex445 17.02.23 22:24, Последний раз изменено 17.02.23 22:34 (alex445)
ещё более сложных фильтров - кастомных композитных фильтров (конструктор фильтров),

Например, чтобы можно было соединять фильтры логическими операторами, типа


where

(Id > 1000 OR Id <= 10)

OR

(LastName DOESNOTCONTAIN "t" AND LastName DOESNOTCONTAIN "a")


Только естественно, что такой кастомный фильтр должен строиться в конструкторе запросов, понятном пользователю, не знакомому с SQL.

#5 
alex445 коренной житель17.02.23 22:39
NEW 17.02.23 22:39 
в ответ alex445 17.02.23 22:30, Последний раз изменено 17.02.23 22:39 (alex445)

И что интересно, бутстрэповские табы не работают биз джаваскрипта. Я думал, это чистый CSS фреймворк, но нет - там чтобы всё нормально работало, надо их js-библиотеку подключать.


Кстати, когда-то давно видел пример дерева (treeview) без скриптов - чисто на стилях. Умеете в такое? И странно, что табы, которые куда проще дерева (т.к. по сути это одноуровневое дерево), не работают у них без скриптов.

#6 
alex445 коренной житель18.02.23 16:50
NEW 18.02.23 16:50 
в ответ AlexNek 18.02.23 13:44, Последний раз изменено 18.02.23 17:00 (alex445)

На сложный фильтр похоже максимум это

https://demos.telerik.com/blazor-ui/grid/custom-filter-men...


Но оно неполноценное - нельзя вложенные фильтры сделать, чтобы как у меня - в скобочках. Также непонятно, как соедиянется фильтр с логическим оператором OR с другими в списке - например по столбцу "Hire Date". Например, можете сказать, в каком порядке выполнится следующий сложный фильтр: filter1 OR filter2 AND filter3 OR filter4? Обычный пользователь не разбирается в булевой алгебре и порядке выполнения логических операторов (кстати, этот порядок ещё и разный в разных языках программирования) - ему нужно другое представление подзапросов - например графическое иерархическое. В Радзене тоже корявенько сделано - я пока не потыкал, исходники не посмотрел, сходу не смог понять, как этот конструктор работает.


Впроцем, если посмотреть в доки, то возможность для этого есть - внутренняя коллекция подфильтров. Но всё равно готового компонента для пользовательского конструирования фильтров нет - как у Радзена.


Нашёл виртуализацию по столбцам - вроде, у Радзена такой пока нету. Хотя эта фича не такая важная, как по строкам.


Но в демках эти телериковские контролы какие-то тормозные. Например, на кнопку фильтра нажал - оно с полсекунды думает, прежде, чем меню фильтра показать. У Радзена более отзывчивые.

#8 
7495 старожил20.02.23 12:36
7495
NEW 20.02.23 12:36 
в ответ alex445 17.02.23 22:39
Я думал, это чистый CSS фреймворк, но нет - там чтобы всё нормально работало, надо их js-библиотеку подключать.


А ты точно программист? Это ж надо такое про фреймворки типа Bootstrap и подобные написать, где всё держится на Явасктипт! зло


Щас кстати посмотрел сколько весит качать, ожидал несколько мб, но bundle.min.js 79кб min.css 216кб, наверное использую у себя.

Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#9 
alex445 коренной житель20.02.23 14:03
NEW 20.02.23 14:03 
в ответ 7495 20.02.23 12:36, Последний раз изменено 20.02.23 14:10 (alex445)

Чел, а зачем у Бутстрэпа в репах тогда куча либ без скриптов, если без них у них якобы ничего не работает? Но на самом деле даже блейзеровский проект по дефолту создаётся с подключенной лишь одной css либой от Бутстрэпа - типа считается, что этого достаточно. Ну, оказалось, что нихрена не достаточно, и чуть что сложнее обычных статичных лейаутов - треба портянка скриптов.


bundle.min.js 79кб

Кстати, да - у них есть не бандл, а просто min.js, который не включает какую-то очередную скриптизёрскую хрень, без которой опять ничего не работает. И что конкретно надо качать, чтобы таки эта хрень заработала - либо надо заранее знать (т.е. быть скритизёром со стажем), выбирая из десятков их реповских либ, либо посвятить свою жизнь изучению пути и философии Бутстрэпа. А не каждый жалкий смертный этого достоин и способен потратить своё никчёмное время для этой великой цели.

#10 
AlexNek патриот20.02.23 19:52
AlexNek
NEW 20.02.23 19:52 
в ответ alex445 18.02.23 16:50
каком порядке выполнится следующий сложный фильтр

нафига, чисто для теории? Больше одного / двух столбцов еще не видел чтобы пользователи гоняли.

#11 
alex445 коренной житель20.02.23 21:08
NEW 20.02.23 21:08 
в ответ AlexNek 20.02.23 19:52, Последний раз изменено 20.02.23 22:54 (alex445)

Ну вот хочет заказчик, чтобы фильтры были теоретически бесконечными по любому столбцу.


Ну и теоретически, если таблица огромная, то может понадобиться больше 2 фильтров даже для одного столбца. Например, хочу несколько диапазонов числового значения? Чтобы, скажем, значение лежало в пределах 0-20, 100-200 и 1999-1218912. Тут что больше-меньше, что between использовать - минимум 3 фильтра задавать.

#12 
Срыв покровов патриот20.02.23 22:08
NEW 20.02.23 22:08 
в ответ alex445 20.02.23 21:08

Алёша все дальше и дальше зашквариаается яваскриптом.

А как пел, как пел.

#13 
alex445 коренной житель20.02.23 22:21
NEW 20.02.23 22:21 
в ответ Срыв покровов 20.02.23 22:08

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

#14 
alex445 коренной житель21.02.23 10:35
NEW 21.02.23 10:35 
в ответ alex445 20.02.23 22:21, Последний раз изменено 21.02.23 10:37 (alex445)

Эти скриптизёры точно чёкнутые. Dropend, dropstart, мать их... Японцы, арабы и прочие идут на..., как я понимаю. А где право-лево, скриптизёры ещё с детства не помнят. Но верх-низ пока ещё различают.

#15 
alex445 коренной житель21.02.23 10:39
NEW 21.02.23 10:39 
в ответ alex445 21.02.23 10:35, Последний раз изменено 21.02.23 11:33 (alex445)

Кстати, ищу готовый контрол, в котором из списка можно натыкать предметов, и натыканные будут где-то отображаться. И потом их можно оттыкать. Главное, чтобы порядок натыкивания соблюдался. Пока самое близкое, почти идеал - вот такое, где с "чипсами". Проблема там, что когда натыканных становится больше 3, то вместо них отображается надпись, сколько натыкано, даже если есть место для более, чем 3 предметов. Смотрю исходники и не вижу, где они это захардкодили.

#16 
AlexNek патриот21.02.23 19:52
AlexNek
NEW 21.02.23 19:52 
в ответ alex445 20.02.23 21:08
Ну вот хочет заказчик, чтобы фильтры были теоретически бесконечными по любому столбцу.

очень странные хотелки.

#17 
AlexNek патриот21.02.23 20:09
AlexNek
NEW 21.02.23 20:09 
в ответ alex445 21.02.23 10:39
в котором из списка можно натыкать предметов, и натыканные будут где-то отображаться


По идее должно быть что-то типа этого где справа и слева лист боксы


#18 
alex445 коренной житель21.02.23 21:23
NEW 21.02.23 21:23 
в ответ AlexNek 21.02.23 20:09

Да, видел иногда такие контролы. По сути это не один контрол, а несколько попроще. Но хотелось бы покомпактнее, а то это громоздкое какое-то. Я выше ссылку привёл в качестве примера. К тому ещё хочу добавить к каждому элементу по менюшке (выпадающий список или парочка радиокнопок). Т.е. чтобы получилось, что не просто выбрал из набора, но ещё и настройки для каждого предмета какие-то сделал. Я пока в голове держу пару вариантов - позже попробую. С этими готовыми Блейзор-фреймворкаками всё куда хуже, чем в WPF или MAUI. В последних почти в каждый элемент можно затолкать сколь угодно сложный другой элемент, хоть целую форму. А тут они контролы во всех этих своих микрофреймворках заточили под узкие задачи и возможности расширения хотя бы через те же темплейты очень ограничены.

#19 
alex445 коренной житель22.02.23 14:43
NEW 22.02.23 14:43 
в ответ alex445 21.02.23 21:23, Последний раз изменено 22.02.23 14:49 (alex445)

Вобщем, в Радзене такое получилось. Причём важен именно порядок выбор элементов - выбранные привязаны к отдельной коллекции выбранных элементов и их порядок не совпадает с коллекцией в списке, откуда их выбираешь. Быбранные элементы можно поудалять по-одному или все скопом (крайний справа крестик). Выбирать сортировки для элементов (что выбранных, что нет), можно хоть в выпавшем списке, хоть в выбранных элементах в серых фигурах. Это компактнее, чем городить два списка и кнопки тасования туда-сюда. У меня ещё и настройки добавлены для каждого элемента, а без них вообще компактно всё выглядит.



Хочу ещё заменить выпадающие списки с выбором сортировок на две радио-кнопки с svg-картинками в виде стрелок вверх и вниз, чтобы не так громоздко было и локализовать не надо было.

#20 
1 2 все