Foros del Web » Creando para Internet » CSS »

Centrar elementos con borde al hacer hover

Estas en el tema de Centrar elementos con borde al hacer hover en el foro de CSS en Foros del Web. Buenas a todos, esta es mi primera pregunta dentro del foro. Actualmente estoy creando un proyecto para la universidad en el diseño de una web ...
  #1 (permalink)  
Antiguo 14/02/2016, 11:06
 
Fecha de Ingreso: febrero-2016
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
Pregunta Centrar elementos con borde al hacer hover

Buenas a todos, esta es mi primera pregunta dentro del foro. Actualmente estoy creando un proyecto para la universidad en el diseño de una web completa, el problema es que soy muy quisquilloso con la parte gráfica.

Mi problema es con el menú, por ahora lo tengo bastante básico con este efecto hover:



Pero, quisiera que tuviera un hover como este:



La cuestión es que sin el efecto logro centrar perfectamente los links, pero al pasar el mouse para activar dicho efecto, estos se mueven puesto que el borde de 3px que agrego que empujan hacia afuera. He buscado ya varias formas de centrarlos, pero ninguna me funciona.

Este es mi código CSS:

@import url('reset.css');

body {
background: #e6e6e6;
}

header {
width: 100%;
}

header nav {
height: 65px;
background: rgba(0,0,0,.70);
overflow: hidden;
}

header nav ul {
list-style: none;
}

header nav ul li {
float: left;
}

header nav ul li a {
margin: 13px;
display: block;
text-decoration: none;
color: #FFF;
padding: 10px;
}

header img {
display: block;
margin:20px;
}

/*Hover header*/
header nav ul li a:hover{
border: 3px solid #F59877;
margin: 11px;
}



Este es el HTML:


Código HTML:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Ferreteria McGyver</title>
        <link rel="stylesheet" type="text/css" href="css/estilos.css">
        <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
        <script type="text/javascript" src="main.js"></script>
</head>
<body>
    <header>
        <div id="subheader">
            <div id="logo">
                <img id=logo src="imagenes/logo.png">
            </div>
            <nav>
                <ul>
                    <li><a href="index.html">Inicio</a></li>
                    <li><a href="Productos.html">Productos</a></li>
                    <li><a href="About.html">Quiénes somos</a></li>
                    <li><a href="Contacto.html">Contacto</a></li>
                </ul>
            </nav>
        </div>
    </header>
    </body>
</html> 
Espero puedan ayudarme y disculpen las molestias.
  #2 (permalink)  
Antiguo 14/02/2016, 12:11
Avatar de mbm150  
Fecha de Ingreso: enero-2013
Ubicación: Muskiz
Mensajes: 79
Antigüedad: 11 años, 3 meses
Puntos: 21
Respuesta: Centrar elementos con borde al hacer hover

Hola

yo creo que lo más fácil es darle un borde de 3px transparente siempre y ponerle color con el hover.

Código CSS:
Ver original
  1. header nav ul li a {
  2. margin: 13px;
  3. display: block;
  4. text-decoration: none;
  5. color: #FFF;
  6. padding: 10px;
  7. border: 3px solid transparent;
  8. }
  9. header nav ul li a:hover{
  10. border: 3px solid #F59877;
  11. }

Así de fácil.

Saludos.
__________________
Juego del Ahorcado
  #3 (permalink)  
Antiguo 14/02/2016, 13:07
 
Fecha de Ingreso: febrero-2016
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Centrar elementos con borde al hacer hover

Pff... vaya solución más simple y yo rompiéndome la cabeza. Haha, muchas gracias.

Por cierto, antes de dar el tema como solucionado ¿cómo se llama la función para que ese borde permanezca en la página actual? Es decir, que si estoy en la página de productos me aparezca siempre bordeado en la navbar "Productos", si estoy en el index pues "Inicio" y así sucesivamente. Supongo que debe ser jquery, pero no conozco el nombre de esa función para buscarla y aplicarla.
  #4 (permalink)  
Antiguo 15/02/2016, 03:25
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Centrar elementos con borde al hacer hover

La solución correcta es usar box-sizing: border-box para que el borde forma parte del ancho y alto del elemento. Lo otro no deja de ser una chapucilla.
__________________
(:
  #5 (permalink)  
Antiguo 15/02/2016, 12:10
Avatar de mbm150  
Fecha de Ingreso: enero-2013
Ubicación: Muskiz
Mensajes: 79
Antigüedad: 11 años, 3 meses
Puntos: 21
Respuesta: Centrar elementos con borde al hacer hover

Hola

Cita:
La solución correcta es usar box-sizing: border-box para que el borde forma parte del ancho y alto del elemento. Lo otro no deja de ser una chapucilla.
lo de box-sizing no funciona... Lo primero que pensé fue eso, pero lo probe y no funciona, por eso dije lo del borde transparente... Igual es que me falto cambiar algo para que funcionara.

Saludos.
__________________
Juego del Ahorcado
  #6 (permalink)  
Antiguo 15/02/2016, 18:42
 
Fecha de Ingreso: febrero-2016
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Centrar elementos con borde al hacer hover

Cita:
Iniciado por pzin Ver Mensaje
La solución correcta es usar box-sizing: border-box para que el borde forma parte del ancho y alto del elemento. Lo otro no deja de ser una chapucilla.
Sí, de hecho fue lo primero que probé, pues fue lo primero que me recomendaron. Sin embargo quedaba igual.

Etiquetas: background, color, elementos, float, hover, html, todo, width
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:34.