Quiero usar Twitter Bootstrap, pero solo en elementos específicos, así que necesito encontrar una manera de prefijar todas las clases de Twitter Bootstrap con mi prefijo, o usar menos mixins. Todavía no tengo experiencia con esto, así que no entiendo muy bien cómo hacerlo. Aquí hay un ejemplo del HTML que estoy tratando de diseñar:
<div class="normal-styles">
<h1>dont style this with bootstrap</h1>
<div class="bootstrap-styles">
<h1>use bootstrap</h1>
</div>
</div>
En este ejemplo, Twitter Bootstrap aplicaría un estilo normal a ambos h1
, pero quiero ser más selectivo en las áreas en las que aplico los estilos de Twitter Bootstrap.
twitter-bootstrap
less
Andrés
fuente
fuente
Respuestas:
Esto resultó ser más fácil de lo que pensaba. Tanto Less como Sass admiten el espacio de nombres (incluso con la misma sintaxis). Cuando incluye bootstrap, puede hacerlo dentro de un selector para el espacio de nombres:
Actualización: para las versiones más recientes de LESS, aquí se explica cómo hacerlo:
Aquí se respondió una pregunta similar.
fuente
@import
el Bootstrap original. También tuve problemas con los modales, creo que porque Bootstrap aplica ciertas clases a la etiqueta del cuerpo de nivel superior. No recuerdo si encontré una solución. Al final, creo que terminé escribiendo mi propio reemplazo modal.@Andrew gran respuesta. También querrá notar que bootstrap modifica el cuerpo {}, principalmente para agregar fuente. Entonces, cuando lo espacio de nombres a través de LESS / SASS, su archivo css de salida se ve así: (en bootstrap 3)
pero obviamente no habrá una etiqueta de cuerpo dentro de su div, por lo que su contenido de arranque no tendrá la fuente de arranque (ya que todo el arranque hereda la fuente del padre)
Para solucionarlo, la respuesta debería ser:
fuente
margin: 0;
Poniendo las respuestas de @Andrew, @Kevin y @ adamj juntas (más algunos otros estilos), si incluye lo siguiente en un archivo llamado "bootstrap-namespaced.less", simplemente puede importar 'bootstrap-namespaced.less' en cualquier menos expediente:
fuente
Agregar un espacio de nombres a bootstrap CSS romperá la funcionalidad modal ya que el bootstrap agrega una clase 'modal-backdrop' directamente al cuerpo. Una solución alternativa es mover este elemento después de abrir el modal, por ejemplo:
Puede eliminar el elemento en un controlador para el evento 'hide.bs.modal'.
fuente
this.modalService.open('myModal', {container: '#modalgoeshere'})
Utilice la versión .less de los archivos. Determine qué menos archivos necesita, luego envuelva esos archivos .less con:
Esto le dará el resultado de:
fuente
Hice un GIST con Bootstrap 3, todo dentro de una clase llamada .bootstrap-wrapper https://gist.github.com/onigetoc/20c4c3933cabd8672e3e
Comencé con esta herramienta: http://www.css-prefix.com/ Y arreglé el resto con buscar y reemplazar en PHPstorm. Todas las fuentes @ font-face están alojadas en maxcdn.
Ejemplo de primera línea
fuente
El espacio de nombres rompe el div de fondo del complemento Modal, ya que siempre se agrega directamente a la etiqueta <body>, omitiendo el elemento de espacio de nombres que tiene los estilos aplicados.
Puede solucionar esto cambiando la referencia del complemento a
$body
antes de que muestre el fondo:La
$body
propiedad decide dónde se agregará el telón de fondo.fuente
Para explicar mejor todos los pasos de los que hablaba Andrew para aquellos que no saben qué es Less. Aquí hay un enlace que explica bastante bien cómo se hace paso a paso Cómo aislar Bootstrap u otras bibliotecas CSS
fuente
La solución más simple: comience a usar clases CSS aisladas de compilación personalizada para Bootstrap.
Por ejemplo, para Bootstrap 4.1, descargue archivos del directorio css4.1 -
https://github.com/cryptoapi/Isolate-Bootstrap-4.1-CSS-Themes
y envuelva su HTML en un div con la clase bootstrapiso:
La plantilla de página con bootstrap 4 aislado será
fuente
Enfrenté el mismo problema y el método propuesto por @Andrew desafortunadamente no ayudó en mi caso específico. Las clases de Bootstrap chocaron con las clases de otro marco. Así es como se ha iniciado este proyecto https://github.com/sneas/bootstrap-sass-namespace . Siéntete libre de usar.
fuente
Como nota adicional para todos. Para que los modales funcionen con un fondo, simplemente puede copiar estos estilos desde bootstrap3
fuente
Primer clon bootstrap de github:
Requisitos de instalación:
Abra scss / bootstrap.scss y agregue su espacio de nombres:
Compilar bootstrap:
Abra
dist/css/bootstrap.css
y elimine el espacio de nombres de la etiquetahtml
ybody
.Luego copie el contenido de la carpeta dist en su proyecto y estará listo.
¡Que te diviertas!
fuente