Boostrap не перекрывает мой собственный CSS
Я начинаю с начальной загрузки, и я хотел сделать простой выбор, используя boostrap, но каким-то образом это разрушает мою страницу. Я думал, что boostrap переопределит мой собственный CSS, но этого не происходит, почему?
<link rel="stylesheet" type="text/css" href="bootstrap-select.min.css"/>
<script href="jquery-3.2.1.min.js"></script>
<script href="bootstrap.min.js"></script>
<script href="bootstrap-select.min.js"></script>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
После замены мест (используйте ссылки, чтобы убедиться, что они правильные):
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<link rel="stylesheet" type="text/css" media="screen" href="bootstrap-select/dist/css/bootstrap-select.min.css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.9.3/js/bootstrap-select.min.js"></script>
<link rel="stylesheet" href="bootstrap-select/dist/css/bootstrap.min.css"/>
Выберите выглядит следующим образом: https://i.imgur.com/VaAT9sW.png
4 ответа
вы можете переопределить с помощью!important
например:color: red!
Это связано с порядком, в котором установлен импорт. Импорт дальше вниз получает приоритет (перезаписывается) над импортом до него.
<link rel="stylesheet" type="text/css" href="bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
Должен быть изменен на:
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<link rel="stylesheet" type="text/css" href="bootstrap.min.css"/>
(сначала поместите файл, который вы хотите иметь меньшим приоритетом)
Переместите весь ваш JS внизу, css вверх и попробуйте удалить "экран" в части css
media = "screen" />
к
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="bootstrap-select.min.css"/>
<link rel="stylesheet" type="text/css" href="style.css"/>
<body>
.....
</body>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<script href="bootstrap-select.min.js"></script>
Надеюсь на эту помощь.
Порядок внешних таблиц стилей имеет значение только в том случае, если все таблицы имеют стили с одинаковыми селекторами, свойствами, весом и специфичностью. Вряд ли это правда.
Итак, что я бы сделал, это сначала отключить ваш лист и просмотреть вашу веб-страницу только с помощью Bootstrap. Нажмите F12 в браузере, откройте окно фактического каскада стилей и посмотрите, какие правила применяются. Я могу сказать вам, что у вас, вероятно, есть мешанина стилей в Bootstrap, наследуемая элементом select. Bootstrap начинает с попытки изменить поля, шрифты и высоту строки основного элемента select. Затем он накладывает слои на пользовательские стили через классы, которые он применяет к ним. Затем посмотрите на обертку div или блочный элемент, удерживающий его. Bootstrap любит плавающие элементы, которые отделяют элементы от страницы и блокируют их.
Теперь добавьте свой лист обратно и посмотрите, что было каскадировано, что добавило стили Bootstrap.
Даже если их классы каскадируются поверх ваших стилей, ваши стили могут изменять свойства, на которые Bootstrap не влияет. Поэтому я бы отключил все стили на вашем листе, которые влияют на элементы «выбрать», а затем осторожно добавил бы ваши собственные стили выбора, чтобы ДОБАВИТЬ не изменить стили Bootstrap. Я бы изменил только простые эффекты, такие как цвета или элементы уровня внешнего блока, в которых находится «выбор».