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 divcon bordery vertical-align: middletodos 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.spanlugar de adivy usar cssdisplay: block;para que se vea como lo desee y semántico.display:blocken 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
#childdivimagea unspanelemento y cambiar#parentdivimagea 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.locationdentro 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
divdeid="childdivimag"aspanen su lugar y envuélvelo en unaelemento. Como los elementos en líneaspanyimgson por defecto, esto sigue siendo válido, mientras que adives un elemento de nivel de bloque y, por lo tanto, un marcado no válido cuando está contenido dentro de una.fuente
poner
display:blockel 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 eventala whereJavaScript cogerá el caso, entonces falsa volver al final del evento JavaScript para impedir la acción predeterminada de lahrefy 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
onclicken laaetiqueta.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