Esto es lo que estoy tratando de lograr en HTML / CSS:
Tengo imágenes en diferentes alturas y anchos, pero todas tienen menos de 180x235. Entonces, lo que quiero hacer es crear un div
con border
y vertical-align: middle
todos ellos. Lo he hecho con éxito, pero ahora estoy atrapado en cómo vincular todo href correctamente div
.
Aquí está mi código:
<div id="parentdivimage" style="position:relative;width:184px;height:235px;border-width:2px;border-color:black;border-style:solid;text-align:center;">
<div id="childdivimage" style="position:absolute;top:50%;height:62px;margin-top:-31px;">
<img src="myimage.jpg" height="62" width="180">
</div>
</div>
Tenga en cuenta que por el simple hecho de copiar y pegar aquí, el código de estilo está en línea.
Leí en alguna parte que simplemente puedo agregar otro div padre encima del código y luego hacer un href dentro de eso. Sin embargo, según algunas investigaciones, no será un código válido.
Entonces, para resumirlo nuevamente, necesito que todo el div ( #parentdivimage
) sea un enlace href.
<a>
etiqueta está en línea y una<div>
etiqueta está bloqueada. No es válido colocar una etiqueta de nivel de bloque dentro de una etiqueta en línea, por lo que esa es la fuente del error.span
lugar de adiv
y usar cssdisplay: block;
para que se vea como lo desee y semántico.display:block
en la<a>
etiqueta. Se convertirá en un elemento de bloque sin anidamiento.¿Por qué no quitas el
<div>
elemento y lo reemplazas con un<a>
en su lugar? El hecho de que la etiqueta de anclaje no sea un div no significa que no pueda darle estilodisplay:block
, altura, ancho, fondo, borde, etc. Puede hacer que se vea como un div pero seguir actuando como un enlace. Entonces no confía en un código no válido o JavaScript que puede no estar habilitado para algunos usuarios.fuente
<a>
dentro<div>
.Hazlo asi:
Parentdivimage debe tener ancho y alto especificados, y su posición debe ser:
Justo dentro de la imagen principal, junto a otros div que contiene el padre, debe poner:
Luego en el archivo css:
La etiqueta span completará su bloque padre, que es parentdiv, debido a que la altura y el ancho están establecidos en 100%. El intervalo estará en la parte superior de todos los elementos circundantes debido a que el índice z es más alto que otros elementos. Finalmente, se podrá hacer clic en el intervalo, porque está dentro de una etiqueta 'a'.
fuente
Dos cosas que puedes hacer:
Cambiar
#childdivimage
a unspan
elemento y cambiar#parentdivimage
a una etiqueta de anclaje. Esto puede requerir que agregue más estilo para que las cosas se vean perfectas. Esto se prefiere, ya que utiliza marcado semántico y no se basa en javascript.#parentdivimage
. Debe redirigir la ventana del navegador modificandowindow.location
dentro de este evento. Este es TheEasyWay TM , pero no se degradará con gracia.fuente
Saliendo de lo que dijo Surreal Dreams, probablemente sea mejor diseñar la etiqueta de anclaje en mi experiencia, pero realmente depende de lo que esté haciendo. Aquí hay un ejemplo:
HTML:
Entonces el CSS:
http://jsbin.com/zijijuduqo/1/edit?html,css,output
fuente
Haz el
div
deid="childdivimag"
aspan
en su lugar y envuélvelo en una
elemento. Como los elementos en líneaspan
yimg
son por defecto, esto sigue siendo válido, mientras que adiv
es un elemento de nivel de bloque y, por lo tanto, un marcado no válido cuando está contenido dentro de una
.fuente
poner
display:block
el elemento de anclaje. y / ozoom:1
;pero realmente deberías hacer esto.
fuente
Lo que haría es poner un espacio dentro del
<a>
etiqueta, configurar el espacio para bloquear y agregar tamaño al espacio, o simplemente aplicar el estilo a la<a>
etiqueta. Definitivamente manejar el posicionamiento en el<a>
estilo de etiqueta. Añadir unaonclick event
ala where
JavaScript cogerá el caso, entonces falsa volver al final del evento JavaScript para impedir la acción predeterminada de lahref
y el burbujeo del clic. Esto funciona en casos con o sin JavaScript habilitado, y cualquier AJAX puede manejarse en el escucha de Javascript.Si está usando jQuery, puede usar esto como su oyente y omitir el
onclick
en laa
etiqueta.esto le permite adjuntar oyentes a cualquier elemento modificado según sea necesario.
fuente
Un enlace con
<div>
etiquetas:Un enlace con
<a>
etiquetas:fuente
Esto puede hacerse de muchas maneras. a. Usando anidado dentro de una etiqueta.
si. Usando el método JavaScript en línea
C. Usando jQuery dentro de la etiqueta
HTML:
jQuery:
fuente