La hoja de estilo de agente de usuario para Chrome proporciona un radio de borde de 5 píxeles a todas las esquinas de un <select>
elemento. Intenté deshacerme de esto aplicando un radio de 0px a través de mi hoja de estilo externa, así como en línea en el elemento mismo; He intentado ambos border-radius:0px
y -webkit-border-radius:0px;
he probado el aún más específico border-top-left-radius:0px
(junto con su equivalente en web-kit).
Ninguno está trabajando
Cuando examino el elemento en las herramientas de desarrollo de webkit, el Estilo Computado todavía enumera el radio como 5px. Pero si hago clic en la flecha del expansor al lado para ver los detalles, se lee: element.style - 0px. Y debajo de eso, muestra la especificación css externa que di de 0px, junto con la especificación de hoja de estilo de agente de usuario de 5px. Y los dos últimos están tachados, como deberían ser.
¿Algunas ideas?
Respuestas:
Esto funciona para mí (el estilo de la primera aparición no es la lista desplegable):
http://jsfiddle.net/fMuPt/
fuente
border: 0
y agrega un esquema como:outline: 1px inset black; outline-offset:-1px
background-color: #yourbg
yborder-style: none
luego cree un div directamente antes del menú desplegable conposition: absolute
yborder-bottom: 1px solid #youpick
ydisplay: inline
. Flechas preservadas, UX ileso, mejor solución.Solo mi solución con la imagen desplegable
(inline svg)
Estoy usando bootstrap por eso lo usé
select.form-control
Puedes usar
select{
o en suselect.your-custom-class{
lugar.fuente
width: auto;
, la flecha svg agregada superpone el contenido de la selección. Esto requiere un relleno adicional en el lado derecho de 16px. Sin embargo, este relleno es visible en todos los navegadores, rompiendo el diseño en otros navegadores. Todavía no tengo solución para eso ...Si desea bordes cuadrados y aún quiere la pequeña flecha expansora, le recomiendo esto:
fuente
outline
en:focus
. Si va a usar esta respuesta, debe cambiar suselect:focus
estilo para mostrar visualmente que elselect
elemento se activa o:focus
edita al hacer clic.Algunas buenas soluciones aquí, pero esta no necesita SVG, conserva el borde a través
outline
y lo coloca al ras del botón.fuente
Si bien la respuesta superior elimina el borde, también elimina la flecha, lo que hace que sea extremadamente difícil, si no imposible, que el usuario identifique el elemento como una selección.
Mi solución fue simplemente pegar un div blanco (con radio de borde: 0px) detrás de la selección. Establezca su posición en absoluta, su altura a la altura de la selección, ¡y debería estar listo!
fuente
Solución con flecha desplegable derecha personalizada, utiliza solo CSS (sin imágenes)
fuente
background-position: calc(100% - 4px) center, 100% center;
Esto mueve la flecha hacia el centro de la selección y todo el camino hacia la derecha. Muchas gracias por el gran comienzo!Una forma de simplificarlo y evitar jugar con las flechas y otras características similares es alojarlo en un div con el mismo color de fondo que la etiqueta de selección.
fuente
Se debe evitar eliminar las flechas. Una solución que conserva las flechas desplegables es eliminar primero los estilos del menú desplegable:
Luego crea div directamente antes del menú desplegable en tu HTML:
Y dale estilo al div así:
La visualización en línea evitará que el div vaya a una nueva línea, la posición absoluta lo elimina del flujo de la página. El resultado final es un subrayado limpio y agradable que puede diseñar como desee, y su menú desplegable aún se comporta como el usuario esperaría.
fuente
El recuadro-sombra insertado hace el truco.
Manifestación
fuente
¿Por alguna razón en realidad está afectado por el color del borde? Cuando usa el color estándar, las esquinas permanecen redondeadas, pero si cambia el color aunque sea ligeramente, el redondeo desaparece.
https://jsfiddle.net/hLg70o70/2/
fuente
Bueno, tengo la solución. espero que te pueda ayudar :)
fuente
Lo siguiente es la forma de hacerlo;
fuente
Utilicé la solución de jordan314, pero luego agregué la clase "border-light" para seleccionar. Si tiene una clase de luz de borde predeterminada definida en css, puede usarla directamente. Simplemente define el borde como blanco). Cambié el borde a cuadrado / eliminé el radio y mantuve la flecha.
Aquí esta lo que hice:
Si no tiene la luz de borde predefinida, simplemente agregue su CSS:
fuente
firefox: 18
fuente
Establecer el CSS como
Intenta si funciona.
fuente