viernes, 13 de julio de 2012

Filled Under: ,

Marcos para imágenes (2): after-before – Law Firm – Accident

Continuando con los sistemas para generar clases CSS que nos permitan añadir fácilmente un marco gráfico a nuestras imágenes desde la hoja de estilo, hoy veremos un par de métodos más con los que despacharemos el asunto de otra manera con la que complicaremos menos la parte HTML.

Para ello utilizaremos las pseudoclases:before y:after como recurso para ir añadiendo las distintas piezas del puzzle que nos permitirán construir el marco completo.

Para el rompecabezas vamos a usar estas cuatro imágenes que hemos encontrado eneste blog de Tumblr. Están diseñadas para imágenes de 400px y una de ellas -la de abajo a la izquierda- es un .gif con transparencia por lo que explicaremos después.

Para luego hacer referencia a ellas consideremos que las de la izquierda son la 1, 2, 3 y 4 (de arriba hacia abajo) y la de la derecha la 5.


Lo que pretendemos es usar el mínimo de capas HTML para ir montando el marco y por eso el siguiente código:

.marcocss {
position: relative;
display: block;
width: 560px;
padding: 82px 0 82px 0;
margin: 0 auto;
background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB9lO9-nVLcyuKIkkacRbRjb6SiOOqGt42LXNYhq3DJH9kAp81Nx5JNnztOIfJdqNtAeZ9PxsKewFCjwnvyKbuAfhM08MO9F7hXA6VyVW97tJijtkHng8yKQ8d7xX7M1wsnrHw9GTqIo22/s1600/marco-corto.jpg) 0 50%;
}
.marcocss img {
margin:0;
padding:0;
border:0;
}
.marcocss:before {
position: absolute;
top:0;
left:0;
content: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8LIR6kyPXSs0iq6DoV3i0JtUqB50SjqdGcQJPyeAYLqtmQha-_boSMkDuhrUbAcLE_lSsCqJqkQGEMVek3J9HK_LTRfMOKdPNBb4nZHwjJEHj_oX8i-439X7QpbXdLZ1-fs3GC-uAkzzY/s1600/marco-top.jpg);
width:560px;
height:86px;
}
.marcocss:after {
position: absolute;
bottom: 86px;
left:0;
content: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvC1KcCypCBZQgEm50Q8muNQDeO-lxifIW9-qmxcK3xMZONac9K3riGs2fhNXo_DL2izc9bWCbA68ieE8pyD-wgS_0IoNERcZTAcNCfYau4CHRZHugxlTJlAAR9EI9KsMztes_gl9uhQdQ/s1600/marco-base.gif);
width:560px;
height:82px;
}
.largo{
background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzJR_dF2FX2bkMhuEHab1F9NwcE7lfgFwBt_wG1kaRB5qla7QAsKD_ODSEeWnCDH39P-xUU0RCL4dfgGh0eiSM8GhHNBcXrdXdhIwKc7QwP31DXLtrPpym77t-CIenCaSlJQauO1DAE-jg/s1600/marco-largo.jpg) no-repeat 0 50%;
}

Como veis, en un principio sólo usamos la clase.marcocss. Esta tendrá un ancho igual al de la imagen del marco (560px) y le aplicamos unpadding arriba y abajo de 82px para dejar espacio para el resto de piezas.

Como fondo usaremos inicialmente la imagen 2, que es la que forma los laterales y que situamos verticalmente centrada con ese0 50%. Unposition: relative; nos ayudará posteriormente a poder colocar adecuadamente el resto de elementos dentro de esta capa.

Luego reseteamos posibles estilos heredados en las imágenes de la hoja de estilo general con.marcocss imgy esas propiedades que veis con valores cero.

Con.marcocss:before ya colocamos la imagen que forma la parte superior (número 1). El posicionamiente absoluto lo será con respecto a.marcocss, que para eso antes le hemos colocado elrelative. Si no lo hubiéramos hecho, estos elementos se nos posicionarían con respecto a la página y este en concreto, en la parte de arriba a la izquierda de la ventana. Dónde no queremos, vaya.

.marcocss:after tiene exactamente la misma utilidad que el anterior pero para formar la parte inferior. En este caso usamosbottom, para situar contando desde abajo. Esta imagen es el .gif con transparencia antes numerada como 4. El motivo de que se necesite que sea transparente en la parte que va a ocupar la imagen principal, es porque de otra manera, parte de la imagen quedaría tapada por esta pieza.


Con todo esto ya sólo resta añadir la clasemarcocss a nuestra capa de imagen para que quede enmarcada, cosa fácil una vez metido lo anterior en nuestra parte de estilo. En verde el lugar dónde incluirla:

div class="separatormarcocss" style="clear: both; text-align: center;"
a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6sbof1WdEFEL5n9wgo3kPHX_SC-cQvDVrKifN1cT_vH6Tc85YXwKptjueIxXGdQ4vpXk2oGJ4wwvKdj05_v4X1OPJ-nXqGUQQZUvCBule_kbPls4C_xs4eidWav5yBth5ndEwWNc1-0eU/s1600/6-3d-art-600x450.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6sbof1WdEFEL5n9wgo3kPHX_SC-cQvDVrKifN1cT_vH6Tc85YXwKptjueIxXGdQ4vpXk2oGJ4wwvKdj05_v4X1OPJ-nXqGUQQZUvCBule_kbPls4C_xs4eidWav5yBth5ndEwWNc1-0eU/s400/6-3d-art-600x450.jpg" width="400" //a/div





Si quisiéramos utilizar leyendas, entonces habría que incluir la clasemarcocss dentro deltd correspondiente a la imagen principal, añadiendo la etiquetaclass:

table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"tbody
trtdclass="marcocss" style="text-align: center;"a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzmZw8cGiHGMvNlkh8cQvZTsrNlqGlNuT3Zx57rPp-cSs_vn2ol1gNwbYiSk1ivTvGgoFZPEZIZMgxAek61-w20Q2aZtGX8qRf9jHGKEm71cNeFqPt4xoQs-Qpn3dMEmCeJKl1LippbiLc/s1600/rascacielos.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzmZw8cGiHGMvNlkh8cQvZTsrNlqGlNuT3Zx57rPp-cSs_vn2ol1gNwbYiSk1ivTvGgoFZPEZIZMgxAek61-w20Q2aZtGX8qRf9jHGKEm71cNeFqPt4xoQs-Qpn3dMEmCeJKl1LippbiLc/s400/rascacielos.jpg" width="400" //a/td/tr
trtd class="tr-caption" style="text-align: center;"Star Workers/td/tr
/tbody/table

Star Workers



Alguien se preguntará para que sirve ese.largo que hemos incluido en el primer trozo de código. Pues sirve cambiar los laterales en las imágenes tan largas que superan la longitud que nos permite la imagen 2.

Para esos casos incluimos una clase adicional y así la imagen que se usará será la número 5. Se podría haber hecho más larga la 2, pero esta da un mejor resultado con esa voluta que lleva hacia la mitad.

div class="separatormarcocss largo" style="clear: both; text-align: center;"
a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy36EdQiHqB0EdSu2XIJsAIQ5oK3SZLUy2kKIl2uJvuIsAKoPykbN7XBwfyNuSAdPb5sj3AovyRenpxnPRt5QkMuVPgU47Z43WTDkKXvEUmY2VA9FZ8SK83MApoTwDxPxCpYQuvuwbxNE1/s1600/play.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy36EdQiHqB0EdSu2XIJsAIQ5oK3SZLUy2kKIl2uJvuIsAKoPykbN7XBwfyNuSAdPb5sj3AovyRenpxnPRt5QkMuVPgU47Z43WTDkKXvEUmY2VA9FZ8SK83MApoTwDxPxCpYQuvuwbxNE1/s1600/play.jpg" width="400" //a/div





Algún espabilao ya se habrá dado cuenta así que lo siguiente es para los que no. Como prácticamente usamos una sola clase para hacer el marco (marcocss), el a veces molesto código que Blogger nos inserta cuando subimos una imagen con el editor, en esta ocasión nos puede venir bien para no tener que añadir nada a mano.

Como podéis comprobar, todas las imágenes que no van en tablas incorporan automáticamente una capa exterior mediante undiv con la claseseparator. ¿Por qué? Pues no sé exactamente, cosas de Blogger, pero nosotros nos podemos aprovechar de ello.

Lo único que habría que hacer si este tipo de marcos los vamos a usar con TODAS las imágenes, sería usar el mismo CSS pero aplicado a la claseseparator en lugar de crear la nuevamarcocss que propuse. O sea, esto:

.separator {
position: relative;
display: block;
width: 560px;
padding: 82px 0 82px 0;
margin: 0 auto;
background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB9lO9-nVLcyuKIkkacRbRjb6SiOOqGt42LXNYhq3DJH9kAp81Nx5JNnztOIfJdqNtAeZ9PxsKewFCjwnvyKbuAfhM08MO9F7hXA6VyVW97tJijtkHng8yKQ8d7xX7M1wsnrHw9GTqIo22/s1600/marco-corto.jpg) 0 50%;
}
.separator img {
margin:0;
padding:0;
border:0;
}
.separator:before {
...
etc.

Si se usa este método alternativo, para las imágenes dentro de tablas habrá que seguir añadiendo a mano dentro deltd una etiquetaclass, pero en este caso con la claseseparator. Ellargo siempre habrá que añadirlo a mano.



Todavía hay una cosilla más que os quiero comentar. Si las imágenes tienen enlace (el caso normal en Blogger), podemos omitir el uso de transparencia para esa imagen (4) que formaba el marco inferior.

Para ello usaríamos dos:before y así no se solaparía en ningún caso por encima de la imagen principal. Como no podemos dar estilos distintos a clases idénticas, el segundo:before para la base del marco iría sobre el enlace.

De esta manera, en el código CSS visto habría que eliminar el.marcocss:after y todas sus propiedades, y en su lugar usar esto otro. Como podéis comprobar, elbackground ahora tiene un .jpg sin transparencias que sería la imagen 3:

.marcocss a:before{
position: absolute;
bottom: 86px;
left:0;
content: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifQstwxC1_pzz0SpqrvdSAYtgnDg_k178mlFMHojcIxsf4E0VGKb_bUSwmzwD6zfKnNp8Sq39CFWB_6AHzra_vw9NiSUUR1yDJXXslxAqb_ptzhCWUG6PnHAbPnZUGsawFOuusLi_GXOhu/s1600/marco-base.jpg);
width:560px;
height:82px;
}

Este ejemplo es ya con esa modificación y como veis, funciona igual:




Si quieres ver otro sistema más clásico para hacer prácticamente lo mismo, sólo tienes que ver laprimera parte sobre marcos para imágenes.

E iba a ser para esta segunda parte, pero me he enrrollado tanto que queda para una tercera entrada el cómo utilizar la propiedad cssborder-image, más sencilla de codificar, con menor requerimiento de imágenes, pero que no es soportada por los navegadores antiguos. El anterior sistema al menos es compatible hasta IE8 que es con el que lo he comprobado.

Donate Car To Charity CALIFORNIA DONATE CAR FOR TAX CREDITDONATE CARS IN MADONATE YOUR CAR SACRAMENTOHOW TO DONATE A CAR IN CALIFORNIA DONATE YOUR CAR FOR KIDS,CAR INSURANCE QUOTES COLORADO ,NUNAVUT CULTURE,DAYTON FREIGHT LINESHARDDRIVE DATA RECOVERY SERVICES,DONATE A CAR IN MARYLAND,MOTOR REPLACEMENTS,CHEAP DOMAIN REGISTRATION HOSTING,DONATING A CAR IN MARYLANDMundial Football free legal advice,FIFA World Cup cheap web hosting donde me dieron un available domain name,cheap domain name registration,pero salio muy caro y mejor me hice student credit card ,accept credit pero me recomendaron mejor utilizar credit counseling service donde tienen un mejor soporte y credito support stocking pero mejor me compre un linux hosting y mejor me afilie a affiliate programs pero buy �web position gold�,microsoft certification,Mesothelioma law firm,Selling annuity payments for cash,Sell my structured settlement,Sell structured settlement,Structured settlement,Structured settlement companies,Sell my annuity payments lump sum,Car accident lawyer Denver,Accident injury attorneys,Sell my annuity

CAR DONATE car insurance quotes mn harddrive data recovery services Seo services Personal Injury Lawyer injury lawyers west palm beach Tech school domain name yahoo LOW CREDIT LINE CREDIT CARDS Donate your car Sacramento MASSAGE SCHOOL DALLAS TEXAS Donate your car for kids Car Insurance Quotes Met Auto motorcycle accident attorney sacramento CAR INSURANCE IN SOUTH DAKOTA mesothelioma suit sell my structured settlement structured settlemen structured settlement need cash now Donate Car for Tax Credit Online Colleges DONATE YOUR CAR FOR MONEY Royalty free images stock mesothelioma lawyer houston WordPress themes for designers WordPress hosting Make money online Australia HARDDRIVE DATA RECOVERY SERVICES Online Motor Insurance Quotes georgia truck accident lawyer student loan consolidation program Service business software Online casino donate old cars to charity Casino Neuson Php programmers for hire Social media platforms for business Mobile casino AUTO ACCIDENT ATTORNEY automobile accident attorney WORLD TRADE CENTER FOOTAGE Online Classes fast cash for house mesothelioma attorney directory DUI lawyer Met auto Best Criminal Lawyers in Arizona Register Free Domains Social media examiner HOW TO DONATE A CAR IN CALIFORNIA event management security Futuristic Architecture cash out annuity illinois law lemon Criminal defense lawyer Casino reviews anti spam appliance Hard drive data recovery services online colledges Donate car for tax credit Hire php developer Hire php developers Live casino cheap car insurance in virginia car insurance quotes NUNAVUT CULTURE online criminal justice degree domains yahoo Dwi lawyer forensics online course Criminal defense attorneys Florida compare life assurance saskatchewan auto insurance New social media platforms mesothelioma charities Sell Annuity Payment Hire php programmers DALLAS MESOTHELIOMA ATTORNEYS structured settlement buyer Christmas cards DONATING A CAR IN MARYLAND mesothelioma settlements Car Donate Criminal lawyer los angeles motorcycle accident lawyer Holland Michigan College Structures Annuity Settlement ONLINE MOTOR INSURANCE QUOTES Car Insurance in South Dakota Donate your Car for Money Business VOIP Solutions Social media tools Business management software Bankruptcy lawyer Dayton Freight Lines VIRTUAL DATA ROOMS Home Phone Internet Bundle WEBEX COSTS Online College Course Computer science classes online Php programmers utah mesothelioma lawyer Seo companies Italian cooking school Best social media platforms for business Html email motorcycle accident lawyer california Custom Christmas cards michigan motorcycle accident lawyer mesothelioma trial attorney verizon sip offshore accident lawyer asbestos lawyers MESOTHELIOMA LAW FIRM FUTURISTIC ARCHITECTURE Business finance group cheap domain registration hosting CRIMINAL DEFENSE ATTORNEYS FLORIDA motor insurance quotes Car Insurance Quotes MN mesothelioma lawyer asbestos cancer lawsuit adverse credit remortgage Massage School Dallas Texas Seo company diagnosed with mesothelioma Custom WordPress theme designer Best Seo company Email Bulk Service Best social media platforms Cheap domain registration hosting integrated ehr Online Christmas cards HOLLAND MICHIGAN COLLEGE small business administration sba Social media strategies best structured settlement companies Personal Injury Lawyers Online Criminal Justice Degree best consolidation loan student Donating a car in Maryland MOTOR REPLACEMENTS mesothelioma information adverse remortgage Photo Christmas cards Donate Your Car for Kids Register free domains MORTGAGE ADVISER Psd to WordPress phd in counseling education DONATE OLD CARS TO CHARITY Social media management wisconsin mesothelioma attorney mesothelioma Social media platforms Donate Your Car Sacramento Proud Italian cook mesothelioma lawyer dallas CHEAP CAR INSURANCE IN VIRGINIA Psd to html MET AUTO WordPress theme designers Adobe illustrator classes Cheap car insurance in Virginia PAPERPORT PROMOTIONAL CODE Learning adobe illustrator Social media campaigns Mesothelioma Law Firm philadelphia mesothelioma lawyer Donate Car to Charity California Donate Cars in MA How to Donate A Car in California Health Records Personal Health Record st louis mesothelioma attorney Asbestos Lawyers Car Insurance Quotes Colorado royalty free images stock mesothelioma care new mexico mesothelioma lawyer DONATE YOUR CAR FOR KIDS Annuity Settlements CHEAP DOMAIN REGISTRATION HOSTING Life Insurance Co Lincoln Nunavut Culture Hard drive Data Recovery Services FORENSICS ONLINE COURSE Donate a Car in Maryland Motor Replacements Cheap Domain Registration Hosting Donating a Car in Maryland Donate Cars Illinois Criminal Defense Attorneys Florida Donate Old Cars to Charity Donate your car for money business voice mail service Auto Accident Attorney mesothelioma attorneys california Car Insurance Quotes Utah DONATING USED CARS TO CHARITY Automobile Accident Attorney fortis health insurance temporary la personal injury lawyer lawsuit mesothelioma best criminal lawyer in arizona CAR INSURANCE QUOTES UTAH STRUCTURED ANNUITY SETTLEMENT Paperport Promotional Code World Trade Center Footage Psychic for Free