Больше всему виной выбор технологий и то, как это заставляет вас бесить бесконечные бессмысленные DIV для
НИЧЕГО, презентационное использование классов и ругань разметки равным количеством «JS даром».
Есть причина, по которой я считаю vue умственно слабым и некомпетентным, как мусор. Вам нужно найти палку, чтобы соскоблить эту ерунду, потому что она просто заставляет вас работать усерднее, а не умнее.
В ЛУЧШЕМ СЛУЧАЕ он заставил вас написать столько же кода, как HTML, так и вы написали бы на CSS без фреймворка, в худшем случае это заставило вас разозлиться на семантику и доступность, в то же время раздувая страницу и заставляя вас писать в два-десять раз больше кода, который необходимо было сделать.
работа!
Посмотрите, как у вас даже НЕТ сценария содержания страницы.
/FAIL/ при доступности.
Посмотрите, как на скриншоте инспектора документов вы видите все эти мучительно бессмысленные элементы DIV.
Это рвота (хорошо напечатано)
<div>
<h3>
<a href="/task-details/mastering-laravel-vue-js">
Mastering Laravel/vue.js
</a>
</h3>
<ul class="tags">
<li><i class="fa fa-wrench"></i>Laravel Development</li>
</ul>
<div class="priorityAndPrice">
<span><i class="fa fa-asterisk"></i>High</span>
<i class="fa fa-money"></i> $320.00
</div>
<p>
Mastering Laravel/vue.js descri Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna a...
</p>
<p class="dates">
From <strong>4th December, 2019</strong> till <strong>4th February, 2020</strong>
</p>
<h4>Skills required for this project:</h4>
<ul class="requiredSkills">
<li>Vue.js</li>
<li>Laravel</li>
<li>PHP</li>
</ul>
<div class="statusAndEvents">
<i
title="Задача находится в статусе обработки. Lorem ipsum dolor сидеть амет"
class="fa fa-battery-half"
></i>
<i
title="Задача имеет 2 события"
class="fa fa-calendar"
></i>
</div>
<a href="/task-details/mastering-laravel-vue-js" class="details">
<i class="fa fa-tasks"></i> Details
</a>
</div>
Код (разметка): Чтобы выполнить эту работу:
<div data-v-13397afc="" class="col-sm-12 col-md-6 p-2 m-0"> <div data-v-13397afc="" class="task_item_container" is_show_location="true"> <div class="card-header p-2 m-0 row_content_left_aligned"> <h4 class="task_title" style="display: flex; flex: 1 0 0%;"><a href="/task-details/mastering-laravel-vue-js" class="a_link"> Mastering Laravel/vue.js </a></h4></div> <div class="column_content_left_aligned p-2"> <div class="row_content_left_aligned p-2"> <div class="task_category pr-4" style="display: flex; flex: 1 0 0%;"><i title="Категория задачи" class="i_link pt-1 fa fa-wrench"></i>Laravel Development </div> <!----> </div> <div class="row_content_left_aligned" style="width: 100% !important;"> <div class="p-2 pt-3"><i title="Приоритет задачи" class="i_link pb-2 fa fa-asterisk"></i><strong>High</strong></div> <div class="row_content_right_aligned" style="display: flex; flex: 1 1 0%; align-self: flex-end;"> <h4 class="mb-2 mr-2"><i title="Оценка задачи" class="i_link fa fa-money"></i><span class="price">$320.00</span></h4></div> </div> </div> <div class="card-body pt-0 column_content_left_aligned"> <div style="display: flex; justify-content: flex-start;"><span class="pre-formatted description-text">Mastering Laravel/vue.js descri Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna a...</span></div> <div class="p-3">From <strong>4th December, 2019</strong> till <strong>4th February, 2020</strong></div> <div class="card-body pt-0 column_content_left_aligned badge_item_row"> <div class="badge_item_row_cell "> <button type="button" class="btn text-nowrap"><span title="Необходимые навыки для этого проекта" class="badge badge-info p-1"><!----> Vue.js </span></button> </div> <div class="badge_item_row_cell "> <button type="button" class="btn text-nowrap"><span title="Необходимые навыки для этого проекта" class="badge badge-info p-1"><!----> Laravel </span></button> </div> <div class="badge_item_row_cell "> <button type="button" class="btn text-nowrap"><span title="Необходимые навыки для этого проекта" class="badge badge-info p-1"><!----> PHP </span></button> </div> </div> <div class="row_content_left_aligned"> <div style="display: flex; flex: 1 1 0%;"> <div class="icon_right_centered p-2 pt-3"><i title="Задача находится в статусе обработки. Lorem ipsum dolor сидеть амет" class="i_link pb-2 task_status_icon_P fa fa-battery-half"></i></div> <div class="icon_right_centered p-2 pt-3"><i title="Задача имеет 2 события" class="i_link pb-2 fa fa-calendar"></i></div> <!----> </div> <div role="alert" class="alert alert-primary row_content_centered" style="display: flex; flex: 1 1 0%;"><a href="/task-details/mastering-laravel-vue-js" class="a_link"><i class="i_link fa fa-tasks"></i>Details </a></div> </div> </div> </div> </div>
Код (разметка): A
ТРЕТИЙ код.
и если вы поддерживаете разделение представления от контента и надлежащие элементы управления, вместо того, чтобы бросать на него презентационные классы в слепой надежде контролировать его с помощью еще более тупой методологии bootcrap, вы можете установить точку останова для ширины либо с помощью медиа-запросов , или используя flex + min-width, реализация обоих из которых требует немного усилий.
ЛЮБОЙ говорить вам, что использование bootcrap или vue для этого облегчило вам что-либо, - это хлопать задницами по ветру. Тем более, учитывая, как это раздражает доступность и удобство использования. ЕДИНСТВЕННОЕ, чему вы можете научиться из этих «фреймворков», — это теперь
НЕТ использовать HTML, CSS или JavaScript; независимо от того, сколько фанатов с промытыми мозгами будут пытаться убедить вас думать иначе с наглым видом
ЛОЖЬ!
Что касается страницы, которая настолько смехотворно проста, ваш выбор технологий заключается в том, чтобы накинуть на вас смирительную рубашку, хромающую юбку и балетки, когда дело доходит до контроля макета и / или объема работы, необходимой для ее выполнения.