From cb3dc56f3c0d140446cd9231e475dbb986c0d5be Mon Sep 17 00:00:00 2001 From: GoalSmashers Date: Sat, 17 Nov 2012 23:43:11 +0000 Subject: [PATCH] Added shorthand forms to (margin|padding|border-width) values where horizontal fields (when 4 values) or vertical fields (in case of 3) match. --- lib/clean.js | 18 ++++++++- test/data/big-min.css | 78 ++++++++++++++++++------------------- test/data/blueprint-min.css | 4 +- test/unit-test.js | 25 ++++++++++-- 4 files changed, 79 insertions(+), 46 deletions(-) diff --git a/lib/clean.js b/lib/clean.js index a4a1ddd5..3399f301 100644 --- a/lib/clean.js +++ b/lib/clean.js @@ -159,10 +159,24 @@ var CleanCSS = { replace(/:0 0 0 0([^\.])/g, ':0$1'); replace(/([: ,=\-])0\.(\d)/g, '$1.$2'); - // same 4 values into one + // 4 size values into less replace(/(padding|margin|border\-width):([\d\w\.%]+) ([\d\w\.%]+) ([\d\w\.%]+) ([\d\w\.%]+)/g, function(match, property, size1, size2, size3, size4) { if (size1 === size2 && size1 === size3 && size1 === size4) - return property + ":" + size1; + return property + ':' + size1; + else if (size1 === size3 && size2 === size4) + return property + ':' + size1 + ' ' + size2; + else if (size2 == size4) + return property + ':' + size1 + ' ' + size2 + ' ' + size3; + else + return match; + }); + + // 3 size values into less + replace(/(padding|margin|border\-width):([\d\w\.%]+) ([\d\w\.%]+) ([\d\w\.%]+)([;}])/g, function(match, property, size1, size2, size3, suffix) { + if (size1 === size2 && size1 === size3) + return property + ':' + size1 + suffix; + else if (size1 === size3) + return property + ':' + size1 + ' ' + size2 + suffix; else return match; }); diff --git a/test/data/big-min.css b/test/data/big-min.css index 71d7f7fd..396f669d 100644 --- a/test/data/big-min.css +++ b/test/data/big-min.css @@ -193,7 +193,7 @@ a:hover,a:focus,a:active,.lien_focus,.flashy{color:#129af0} p{margin:0} section,article,figure{overflow:hidden } -section article{margin:0 0 16px 0} +section article{margin:0 0 16px} figure img,article img,.img_bord{border:1px solid #eef1f5;vertical-align:bottom} .invisible{border:0;background:0} .gras{font-weight:700} @@ -258,7 +258,7 @@ figure img,article img,.img_bord{border:1px solid #eef1f5;vertical-align:bottom} img[width="642"]{margin-bottom:6px} img[width="312"]{margin-bottom:6px} img[width="202"]{margin-bottom:4px} -.btn,.btn_fonce,.btn_abo,.btn_petit{display:inline-block;padding:4px 10px 4px;margin-bottom:0;color:#000b15;text-align:center;font-weight:700;vertical-align:middle;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);border:1px solid #ccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);cursor:pointer} +.btn,.btn_fonce,.btn_abo,.btn_petit{display:inline-block;padding:4px 10px;margin-bottom:0;color:#000b15;text-align:center;font-weight:700;vertical-align:middle;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);border:1px solid #ccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);cursor:pointer} .btn_fonce,.bt_fonce a{color:#fff;background-color:#000b15;background-image:-moz-linear-gradient(top,#5d666d,#000b15);background-image:-ms-linear-gradient(top,#5d666d,#000b15);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5d666d),to(#000b15));background-image:-webkit-linear-gradient(top,#5d666d,#000b15);background-image:-o-linear-gradient(top,#5d666d,#000b15);background-image:linear-gradient(top,#5d666d,#000b15);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5d666d', endColorstr='#000b15', GradientType=0);border-color:#000b15;border-color:rgba(0,0,0,.1);filter:progid:dximagetransform.microsoft.gradient(enabled=false)} .btn_abo{color:#000b15;background-color:#ffc600;background-image:-moz-linear-gradient(top,#ffe562,#ffc600);background-image:-ms-linear-gradient(top,#ffe562,#ffc600);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ffe562),to(#ffc600));background-image:-webkit-linear-gradient(top,#ffe562,#ffc600);background-image:-o-linear-gradient(top,#ffe562,#ffc600);background-image:linear-gradient(top,#ffe562,#ffc600);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe562', endColorstr='#ffc600', GradientType=0);border-color:#ffc600;border-color:rgba(0,0,0,.1);filter:progid:dximagetransform.microsoft.gradient(enabled=false)} .btn.large{width:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box} @@ -379,8 +379,8 @@ article .liste_carre_999{margin-top:5px} .deroule_edito.culture .liste_horaire.liste_scroll{height:249px} .deroule_edito.politique .liste_horaire{height:507px;overflow-y:scroll;line-height:120%} .deroule_edito.politique .liste_horaire a{width:225px} -.titre_une{margin:0 0 10px 0} -.titre_une figcaption{margin:5px 0 0 0} +.titre_une{margin:0 0 10px} +.titre_une figcaption{margin:5px 0 0} .titres_abonnes{overflow:hidden;background:#f8f9fb;border-bottom:6px solid #e9edf0} .titres_abonnes .entete,.entete_exclu_abonnes{display:block;height:19px;background:#ffd500 url(/medias/web/img/elements_lm/ea_contenu_exclusif.png) no-repeat 8px 4px;font-size:13px;text-indent:-9999px} .titres_abonnes .ligne1,.titres_abonnes .ligne2{padding:15px 0 10px;overflow:hidden} @@ -453,8 +453,8 @@ article .liste_carre_999{margin-top:5px} .global.revue_web .vidberg li:last-child{border-bottom:0} .global.debats .entete_deroule{margin:0} .global.debats .bg{padding:13px 0;background:#f8f9fb;border-bottom:1px solid #eef1f5;overflow:hidden} -.global.debats .nature_edito{margin:0 0 5px 0} -.global.debats .tt17_capital{margin:0 0 16px;padding:4px 0 4px;border-bottom:1px solid #e9edf0;color:#000} +.global.debats .nature_edito{margin:0 0 5px} +.global.debats .tt17_capital{margin:0 0 16px;padding:4px 0;border-bottom:1px solid #e9edf0;color:#000} .lien_chaine,.deroule_edito .liens_bas{width:100%;clear:both;padding:6px 0 0;margin:-3px 0 0;border-top:1px solid #eef1f5;text-align:center} .lien_chaine.lien_chaine_sans_bordure{border-top:0!important} .lien_chaine a,.lien_chaine span{color:#8b9299;font-weight:700;font-size:14px;font-size:1.4rem} @@ -476,7 +476,7 @@ article .liste_carre_999{margin-top:5px} .une_revolutionnaire .tt40{text-align:center} .une_revolutionnaire h1+p{margin:0 0 8px;text-align:center} .une_revolutionnaire .titres{margin:18px 0 8px} -.haut_rubrique{margin:0 0 20px;border-bottom:6px solid #e9edf0;padding:0 0 4px 0} +.haut_rubrique{margin:0 0 20px;border-bottom:6px solid #e9edf0;padding:0 0 4px} .fleuve .signature,.fleuve time{font-size:1.1rem;color:#8b9299;margin:0} .fleuve .urgent time{color:#fff} .ie .fleuve .signature,.ie .fleuve time{font-size:11px} @@ -493,7 +493,7 @@ article .liste_carre_999{margin-top:5px} .fleuve .urgent .conteneur_fleuve{padding-top:10px} .fleuve .jour_parution{background:#fff} .fleuve .jour_parution{display:block;padding:0 0 20px;color:#2e3942;text-transform:uppercase;font-weight:700} -.fleuve .atome{margin:0 0 10px 0} +.fleuve .atome{margin:0 0 10px} .fleuve .liens{margin:16px 0 0;color:#a2a9ae} .fleuve .liens>span:first-child{float:left} .fleuve .liens .permalien{float:left;margin-left:8px;cursor:pointer;height:26px} @@ -653,7 +653,7 @@ img[height="97"]+.ico29x29{bottom:6%;left:3.5%} #footer_services .carousel li{height:176px} #footer_services .carousel .alpha{clear:none;margin-right:16px} #footer_services .bloc{position:relative;height:176px;border-top:3px solid #16212c} -#footer_services .contenu_bloc,#footer_services .img_bloc{height:142px;padding:5px 16px 5px;border:solid #e4e6e9;border-width:0 1px 1px;background:#fafbfc} +#footer_services .contenu_bloc,#footer_services .img_bloc{height:142px;padding:5px 16px;border:solid #e4e6e9;border-width:0 1px 1px;background:#fafbfc} #footer_services .img_bloc{padding:0;height:151px} #footer_services .entete{display:block;height:21px;padding:0 16px;border:solid #e4e6e9;border-width:0 1px;background:#eef1f5;color:#16212c;line-height:20px;font-size:12px;font-weight:700} #footer_services .opacite{position:absolute;bottom:0;left:0;background:rgba(255,255,255,.7);height:35px;padding-top:5px;width:100%;line-height:120%} @@ -674,7 +674,7 @@ img[height="97"]+.ico29x29{bottom:6%;left:3.5%} #footer_services .meteo .ciel{vertical-align:middle} #footer_services .meteo .temperature{font-size:17px} #footer_services .intitule{color:#8b9299} -#footer_services .conteneur_liste_tv{height:150px;border:solid #eef1f5;border-width:0 1px 1px 1px} +#footer_services .conteneur_liste_tv{height:150px;border:solid #eef1f5;border-width:0 1px 1px} #footer_services .conteneur_liste_tv .footer{display:block;color:#747b83;font-size:11px;text-align:right;padding:2px 16px 0 0} #footer_services .carousel .liste_tv{position:relative;height:128px;overflow-y:auto;overflow-x:none;border-bottom:1px solid #eef1f5} #footer_services .carousel .liste_tv li{height:auto;overflow:hidden;padding:5px 3px} @@ -721,7 +721,7 @@ img[height="97"]+.ico29x29{bottom:6%;left:3.5%} #footer .footer_listes{overflow:hidden;padding:0 13px;background:#16212c;color:#2e3942;line-height:120%} #footer .footer_listes div{float:left;width:152px;padding:10px 16px 10px 0} #footer .footer_listes div:nth-child(2n+2){width:303px} -#footer .footer_listes .titre{display:block;margin:0 0 4px 0;font-weight:700;color:#eef1f5} +#footer .footer_listes .titre{display:block;margin:0 0 4px;font-weight:700;color:#eef1f5} #footer .footer_listes a,#footer .footer_listes span,#footer .footer_bas a,#footer .footer_bas span,#footer .footer_listes li{color:#a2a9ae} #footer .footer_bas .nl:hover{text-decoration:none;color:#747b83} #footer .footer_bas{overflow:hidden;padding:5px 13px 10px;border-top:1px solid #2e3942;background:#16212c;color:#a2a9ae} @@ -829,7 +829,7 @@ img[height="97"]+.ico29x29{bottom:6%;left:3.5%} #header_utilisateur .nl{float:left;margin:7px 0 0} #header_utilisateur .nl:hover{background-position:right -20px} #header_utilisateur .meteo{margin:8px 0 0;float:right;text-align:right} -#header_utilisateur .meteo a{margin:0 15px 0 0;padding:0 0 3px 0;color:#747b83} +#header_utilisateur .meteo a{margin:0 15px 0 0;padding:0 0 3px;color:#747b83} #header_utilisateur .meteo a:last-child{margin:0} #header_utilisateur .meteo a img{vertical-align:text-bottom} #header_utilisateur a:hover,#header_utilisateur .obf:hover{color:#16212c} @@ -866,7 +866,7 @@ img[height="97"]+.ico29x29{bottom:6%;left:3.5%} .lightbox_ext .fermer:hover span,.loginbox .fermer:hover span{background-position:0 -191px} .loginbox .message{padding:10px;background:#eef1f5} .loginbox .login_form{position:relative;float:left;width:245px;height:235px;padding:10px 15px;border-right:1px solid #fff} -.lightbox_ext .intitule,.loginbox .intitule{margin:0 0 15px 0;font-size:18px;line-height:18px;color:#000;font-weight:700} +.lightbox_ext .intitule,.loginbox .intitule{margin:0 0 15px;font-size:18px;line-height:18px;color:#000;font-weight:700} .loginbox span{display:block} .loginbox label{display:block;margin:0 15px 5px 0;color:#747b83} .loginbox .choix{margin:15px 0;font-size:11px} @@ -1033,7 +1033,7 @@ label i{display:none;font-style:normal;display:none} .reaction_identifier .mini-login .deja_abo{padding:0 10px 10px 14px} .reaction_identifier .mini-login p{overflow:hidden;clear:both} .liste_reactions label,.reaction_identifier label{position:relative;margin:10px 0 3px;color:#747b83;line-height:20px} -.reaction_identifier .deja_abo .txt18{display:inline-block;margin:0 0 15px 0} +.reaction_identifier .deja_abo .txt18{display:inline-block;margin:0 0 15px} .reaction_identifier .deja_abo label+input{width:210px} .reaction_identifier .deja_abo p>label{float:left} .reaction_identifier .deja_abo p>label+a{float:left;margin:14px 0 0 20px} @@ -1080,7 +1080,7 @@ label i{display:none;font-style:normal;display:none} .barre_outils .classer.actif span{background-position:-13px -12px} .barre_outils .imprimer span{width:12px;height:12px;background:url(/medias/web/img/sprites/icos_petites.png) no-repeat 0 -25px;vertical-align:baseline} .barre_outils .envoyer span{width:12px;height:10px;background:url(/medias/web/img/sprites/icos_petites.png) no-repeat -13px -25px;vertical-align:baseline} -.conteneur_barre_outils .reaction_identifier{margin:0 0 20px 0;border-bottom:3px solid #e9ecf0;border-top:0} +.conteneur_barre_outils .reaction_identifier{margin:0 0 20px;border-bottom:3px solid #e9ecf0;border-top:0} .conteneur_barre_outils .non_abo.classer{background:url(/medias/web/img/textes/pas_le_temps_lire.png) no-repeat 16px 40px} .conteneur_barre_outils p{margin:0} .article .fb-like{height:25px;overflow:hidden;opacity:0} @@ -1094,7 +1094,7 @@ label i{display:none;font-style:normal;display:none} .bloc_part .entete{background:#2e3942;height:23px;line-height:23px;padding:0 15px;text-align:right} .bloc_part .entete .intitule{font-family:'FetteEngschrift','Arial Narrow',sans-serif;text-transform:uppercase;color:#fff;font-size:15px;float:left} .bloc_part .entete .nom{float:right;color:#eef1f5} -.bloc_part .accroche{display:block;margin:0 0 8px 0} +.bloc_part .accroche{display:block;margin:0 0 8px} .bloc_part .promo{color:#fe2f2f} .bloc_part .texte,.bloc_part.petit .texte{position:relative;padding-top:12px;height:182px;float:left;color:#16212c} .bloc_part.petit .texte{height:118px} @@ -1146,7 +1146,7 @@ label i{display:none;font-style:normal;display:none} .services .bloc_part.gymglish .contenu.mot_mois .btn_fonce{bottom:16px;left:15px} .bloc_part.gymglish .contenu.mot_mois{bottom:42px;left:15px;height:143px} .bloc_part.gymglish .contenu.mot_mois .img{width:110px;float:right;margin:4px 0} -.bloc_part.empruntis .contenu{padding:0 15px 0;background:url(/medias/web/img/partenaires/empruntis/stylo.jpg) no-repeat} +.bloc_part.empruntis .contenu{padding:0 15px;background:url(/medias/web/img/partenaires/empruntis/stylo.jpg) no-repeat} .bloc_part.empruntis .contenu .texte{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;width:190px;color:#16212c} .bloc_part.empruntis .contenu .texte strong{display:block;color:#16212c} .bloc_part.empruntis .contenu .texte .lien_chevron{display:block;color:#a2a9ae;font-weight:700;color:#16212c} @@ -1157,7 +1157,7 @@ label i{display:none;font-style:normal;display:none} .bloc_part.darqroom .footer img{margin-top:-3px } .bloc_part.darqroom.grid_12.promo .texte{background:0;color:#16212c} -.bloc_part .homelidays{padding:0 0 0} +.bloc_part .homelidays{padding:0} .footer .homelidays{margin-top:-3px} .bloc_part.immostreet .annonce,.bloc_part.la_centrale .annonce{display:table-cell;width:85px;font-size:10px;line-height:13px;color:#5d666d} .bloc_part.la_centrale .annonce .modele,.bloc_part.la_centrale .annonce .prix{display:block} @@ -1235,7 +1235,7 @@ label i{display:none;font-style:normal;display:none} .col_droite .plus_partages ul{overflow:hidden} .col_droite .plus_partages li{overflow:hidden;padding:10px 15px;border-top:1px solid #eef1f5;line-height:120%} .col_droite .plus_partages li:first-child{border-top:0} -.col_droite .plus_partages .bulle_nombre,.col_droite .plus_partages .numero{margin:2px 0 0 0;text-align:center} +.col_droite .plus_partages .bulle_nombre,.col_droite .plus_partages .numero{margin:2px 0 0;text-align:center} .col_droite .plus_partages .numero{float:left;width:15px;height:14px;background:#e9ecf0;color:#a2a9ae;font-size:11px;line-height:15px} .col_droite .plus_partages .texte{float:left;width:190px;padding:0 10px 0 8px} .col_droite .sociaux .pictos{overflow:hidden;margin:10px 15px} @@ -1371,7 +1371,7 @@ label i{display:none;font-style:normal;display:none} .conteneur_alerte .alerte .texte_alerte{float:left;width:540px;height:75px;overflow:hidden} .conteneur_alerte .alerte .texte_alerte strong{display:block} .conteneur_alerte .sociaux{width:10.2%;display:table-cell;padding:10px 10px 20px;vertical-align:bottom;border-left:1px solid #464f57} -.conteneur_alerte .sociaux .txt11{display:block;margin:0 0 10px 0;color:#5d666d;font-weight:700} +.conteneur_alerte .sociaux .txt11{display:block;margin:0 0 10px;color:#5d666d;font-weight:700} @media screen and (max-width:1640px){.conteneur_alerte{width:72%;margin:0} } @media screen and (max-width:1200px){.conteneur_alerte{width:640px;margin:0} @@ -1680,7 +1680,7 @@ img.spacer{width:1px;height:1px} #core-liberation form h2{margin-bottom:10px} #core-liberation form p{padding-top:10px;padding-bottom:10px} #core-liberation form .hidden{display:none} -ul.errorlist{background:#fafafa;border:1px solid #e20000;color:#2e2e2e;margin:0 0 5px 0;padding:5px} +ul.errorlist{background:#fafafa;border:1px solid #e20000;color:#2e2e2e;margin:0 0 5px;padding:5px} ul.errorlist li{font-size:11px;font-weight:400;color:#e20000} ul.list li{margin-bottom:20px} .block .block-content{padding:5px 14px} @@ -1716,10 +1716,10 @@ ul.list li{margin-bottom:20px} img#hit-count{position:absolute;bottom:0;right:0;margin:0;padding:0;height:0} #DOMWindow iframe{height:96%!important} #mainContent{display:block;margin:0 auto;width:1000px;padding:1px 0} -#core-liberation,#header-liberation,#footer-liberation{display:block;clear:both;margin:0 0 14px 0} +#core-liberation,#header-liberation,#footer-liberation{display:block;clear:both;margin:0 0 14px} #core-liberation{padding:0 10px} #header-liberation{padding:0} -#footer{margin-bottom:0;padding:0 0 28px 0} +#footer{margin-bottom:0;padding:0 0 28px} .m-bot-s1{margin-bottom:42px} .m-bot-s2{margin-bottom:28px} .m-bot-s3{margin-bottom:21px} @@ -1779,7 +1779,7 @@ body.iframe{padding-top:0} .ad-top{padding:1px 0} .ad-top .megaban{margin:7px auto} .ad-bottom .megaban{padding:7px 0} -.ad-google .googleBanner .annonce{margin:0 0 7px 0;padding:7px;font-size:12px;border:1px solid} +.ad-google .googleBanner .annonce{margin:0 0 7px;padding:7px;font-size:12px;border:1px solid} .ad-google .googleBanner .annonce:last-of-type{margin-bottom:0} .lnk-libeplus{background-image:url(http://s0.libe.com/libe/img/common/ico-lnk-libeplus.png?2967b1507eee);background-repeat:no-repeat;background-position:right 4px;padding-right:20px} .lnk-libeplus-big{background-image:url(http://s0.libe.com/libe/img/common/ico-lnk-libeplus-big.png?401394d0f866);background-repeat:no-repeat;background-position:right 4px;padding-right:30px} @@ -1823,11 +1823,11 @@ body.iframe{padding-top:0} #header-liberation .header-simple .back a{display:block;padding-top:11px;padding-left:17px} #header-liberation .header-simple .logo{display:block;float:left;height:39px;width:120px} #header-liberation .header-simple .logo img{display:block;width:106px;height:39px} -#header-liberation .header-annex{position:relative;margin:0 42px;padding:20px 0 0 0} +#header-liberation .header-annex{position:relative;margin:0 42px;padding:20px 0 0} #header-liberation .header-annex .logo{position:absolute;display:block;width:205px;height:80px} #header-liberation .header-annex a.logo:hover:after{content:"< retour sur l'accueil";position:absolute;top:17px;left:230px;width:200px;display:inline-block;padding-right:20px;text-transform:none;font-size:13px} #header-liberation .header-annex h1,#header-liberation .header-annex ul{display:block;margin-left:230px} -#header-liberation .header-annex h1{border-bottom:1px solid;height:25px;margin-top:10px;padding:0 0 5px 0;text-align:right;font-size:18px;text-transform:uppercase;font-weight:400} +#header-liberation .header-annex h1{border-bottom:1px solid;height:25px;margin-top:10px;padding:0 0 5px;text-align:right;font-size:18px;text-transform:uppercase;font-weight:400} #header-liberation .header-annex h1 a:hover:before{content:"< retour sur";display:inline-block;padding-right:20px;text-transform:none;font-size:13px} #header-liberation .header-annex ul{display:table;width:750px;margin-top:10px;margin-bottom:10px} #header-liberation .header-annex ul li{display:table-cell;text-align:center} @@ -1840,12 +1840,12 @@ body.iframe{padding-top:0} #footer-liberation .abo,#footer-liberation .monlibe,#footer-liberation .news,#footer-liberation .services{display:block;float:left} #footer-liberation .abo{position:relative;width:448px;height:180px} #footer-liberation a.visual{display:block;position:absolute;width:252px;height:135px;right:28px;top:33px} -#footer-liberation .abo ul li{padding:0 0 3px 0} +#footer-liberation .abo ul li{padding:0 0 3px} #footer-liberation .monlibe,#footer-liberation .news,#footer-liberation .services{min-height:200px} #footer-liberation .monlibe{width:112px;margin-right:14px;padding-left:14px} #footer-liberation .news{width:168px;padding:0 14px} #footer-liberation .services{width:168px;padding:0 14px} -#footer-liberation .monlibe h5,#footer-liberation .news h5,#footer-liberation .services h5{text-transform:uppercase;padding:0 0 4px 0;font-size:10px} +#footer-liberation .monlibe h5,#footer-liberation .news h5,#footer-liberation .services h5{text-transform:uppercase;padding:0 0 4px;font-size:10px} #footer-liberation .abo h2{text-transform:uppercase;font-size:12px} #footer-liberation .abo h3{text-transform:uppercase;font-weight:400;font-size:12px;margin-bottom:20px} #footer-liberation .news h5,#footer-liberation .services h5{margin-bottom:10px} @@ -1981,8 +1981,8 @@ body.auth-unlogged #core-liberation .form-monlibe-unlogged form{opacity:.3;-ms-f .col-contextual .block-nobg{padding:10px 0} .col-contextual .block-solid-c2 .block-top{border-bottom:3px solid} .col-part .block{margin-bottom:7px;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px} -.col-part .block .block-top{text-transform:uppercase;font-weight:700;padding:7px 0 7px;text-align:center} -.col-part .block .block-content{padding:0 0 1px 0} +.col-part .block .block-top{text-transform:uppercase;font-weight:700;padding:7px 0;text-align:center} +.col-part .block .block-content{padding:0 0 1px} .col-part .block hr{border:0;border-top:1px solid} .col-part .block img.visual{display:block;margin:0 auto 7px} .col-part .block img.left{float:left;margin-right:5px;margin-bottom:5px} @@ -2067,7 +2067,7 @@ body.auth-unlogged #core-liberation .form-monlibe-unlogged form{opacity:.3;-ms-f #core-liberation .block-comments .block-content .comment_hover .meta .details a.profile{display:block} #core-liberation .block-comments .block-content .meta .when{position:absolute;right:0;bottom:16px;font-size:11px} #core-liberation .block-comments .block-content .comment_title{display:block;clear:both;font-weight:700;font-size:12px;font-family:Verdana,sans-serif;margin-bottom:10px} -#core-liberation .block-comments .block-content .comment_reply_links{padding:14px 0 0 0;height:30px} +#core-liberation .block-comments .block-content .comment_reply_links{padding:14px 0 0;height:30px} #core-liberation .block-comments .block-content .comment_reply_links .comment_flag,#core-liberation .block-comments .block-content .comment_reply_links .comment_post_new{display:none;float:right;margin-right:10px;padding-top:5px} #core-liberation .block-comments .block-content .comment_reply_links .comment_flag .icon{position:static;display:block;width:13px;height:12px;float:left;background-image:url(http://s0.libe.com/libe/img/common/_sprites_icons/icons.png?9914d0d70a49);background-repeat:no-repeat;background-position:-33px -2px;margin:3px 6px 0 0} #core-liberation .block-comments .block-content .comment_reply_links .comment_flag:hover .icon{background-position:-33px -18px} @@ -2192,7 +2192,7 @@ a.god:hover{background:#3c3c3c;color:#fff;text-decoration:none} #core-liberation .block-all-forums .forum h5.title{margin-bottom:7px;margin-left:0} #core-liberation .block-all-forums .forum h5.title .right{font-weight:400} #core-liberation .block-all-forums .forum h5.title .community-bubble{float:left;margin:1px 10px 0 0} -#core-liberation .block-all-forums .forum img.visual{display:block;float:left;margin:4px 0 0 0;width:56px;height:56px} +#core-liberation .block-all-forums .forum img.visual{display:block;float:left;margin:4px 0 0;width:56px;height:56px} #core-liberation .block-all-forums .forum h5{margin-left:70px;margin-bottom:7px} #core-liberation .block-all-forums .forum p.subtitle{margin-left:70px} #core-liberation .block-all-forums .forum span.infos{margin-left:70px;display:block} @@ -2238,7 +2238,7 @@ a.god:hover{background:#3c3c3c;color:#fff;text-decoration:none} #core-liberation .block-search-head .advanced .note .links{display:block;padding:5px 0 0 14px} #core-liberation .block-search-head .advanced .searchform{height:0;overflow:hidden} #core-liberation .block-search-head .advanced .searchform select{font-size:10px} -#core-liberation .block-search-head .advanced .searchform .period,#core-liberation .block-search-head .advanced .searchform .between,#core-liberation .block-search-head .advanced .searchform .source,#core-liberation .block-search-head .advanced .searchform .category{padding:7px 14px 7px;border-bottom:1px dotted;font-size:11px} +#core-liberation .block-search-head .advanced .searchform .period,#core-liberation .block-search-head .advanced .searchform .between,#core-liberation .block-search-head .advanced .searchform .source,#core-liberation .block-search-head .advanced .searchform .category{padding:7px 14px;border-bottom:1px dotted;font-size:11px} #core-liberation .block-search-head .advanced .searchform .period label{padding-right:4px} #core-liberation .block-search-head .advanced .searchform .period ul li{display:inline} #core-liberation .block-search-head .advanced .searchform .between .from,#core-liberation .block-search-head .advanced .searchform .between .to{display:inline;padding-left:5px} @@ -2290,7 +2290,7 @@ a.god:hover{background:#3c3c3c;color:#fff;text-decoration:none} #core-liberation .headrest .folder h2{margin-left:14px;padding-top:3px;font-weight:400} #core-liberation .headrest .folder p{margin-left:14px} #core-liberation .headrest .bg-sprites-icons span.icon{float:left;margin-right:10px} -#core-liberation .block .block-top .headrest-basic-striked h5,#core-liberation .headrest-basic-striked h5{border:0;padding:0 0 4px 0;font-weight:400;font-size:14px;height:12px} +#core-liberation .block .block-top .headrest-basic-striked h5,#core-liberation .headrest-basic-striked h5{border:0;padding:0 0 4px;font-weight:400;font-size:14px;height:12px} #core-liberation .headrest-basic-striked h5 span{margin-left:20px;padding:0 7px 0 10px} #core-liberation .headrest-community{margin-bottom:14px} #core-liberation .headrest-community h3{font-family:Verdana,sans-serif;font-size:14px;text-transform:uppercase} @@ -2415,7 +2415,7 @@ body.init-bar-is-closed #bar-liberation{height:15px} #bar-liberation .content a.displayer:hover .arrow{background:url(http://s0.libe.com/libe/img/common/_sprites_header/triangle_ferme_grey.png?a9a52344ba82) no-repeat 0 0} #bar-liberation .content a.displayer .arrow-displayed{background:url(http://s0.libe.com/libe/img/common/_sprites_header/triangle_ouvert.png?c782eb482038) no-repeat 1px 1px} #bar-liberation .content a.displayer:hover .arrow-displayed{background:url(http://s0.libe.com/libe/img/common/_sprites_header/triangle_ouvert.png?c782eb482038) no-repeat 1px 1px} -#bar-liberation .content ul.list li{margin:0 10px;min-height:32px;padding:6px 0 2px 0;border-bottom:1px solid;line-height:16px} +#bar-liberation .content ul.list li{margin:0 10px;min-height:32px;padding:6px 0 2px;border-bottom:1px solid;line-height:16px} #core-liberation .block-activities .block-content ul li a,#bar-liberation .content ul.list li a,#core-liberation .block-activities .block-content ul li a:hover,#bar-liberation .content ul.list li a:hover{text-decoration:underline} #bar-liberation .content ul.list li:last-of-type{border-bottom:0} #bar-liberation .content ul.list li:first-of-type{padding-right:30px} @@ -2604,9 +2604,9 @@ body.access-ess #page-paywall .content .arguments .arg{float:none;margin:auto} .site-liberation .block-call-items .mini-tpl .chat .contribute form fieldset input[type=submit]{float:right} .site-liberation .block-call-items .mini-tpl .chat .contribute .btn{float:left} .site-liberation .w17unit .block-call-items .mini-tpl .others,.site-liberation .w17unit .block-call-items .mini-tpl .others ul.list-linked-items{clear:both} -.site-liberation .w17unit .block-call-items .mini-tpl .big,.site-liberation .w17unit .block-call-items .mini-tpl .pano{clear:both;margin:0 0 14px 0} +.site-liberation .w17unit .block-call-items .mini-tpl .big,.site-liberation .w17unit .block-call-items .mini-tpl .pano{clear:both;margin:0 0 14px} .site-liberation .w14unit .block-call-items .mini-tpl .others,.site-liberation .w14unit .block-call-items .mini-tpl .others ul.list-linked-items{clear:both} -.site-liberation .w14unit .block-call-items .mini-tpl .big,.site-liberation .w14unit .block-call-items .mini-tpl .pano{clear:both;margin:0 0 14px 0} +.site-liberation .w14unit .block-call-items .mini-tpl .big,.site-liberation .w14unit .block-call-items .mini-tpl .pano{clear:both;margin:0 0 14px} .site-liberation .w14unit .block-call-items .mini-tpl .big{width:392px;height:261px} .site-liberation .w14unit .block-call-items .mini-tpl .pano{width:392px;height:85px} .site-liberation .w11unit .block-call-items .mini-tpl .pano{width:300px;height:65px} @@ -2615,11 +2615,11 @@ body.access-ess #page-paywall .content .arguments .arg{float:none;margin:auto} .site-liberation .block-call-items .tpl-visual-square-left h5{font-family:Georgia,"Times New Roman",Times,serif;font-size:13px;font-weight:700} .site-liberation .block-call-items .tpl-visual-square-left-arround h5{font-family:Georgia,"Times New Roman",Times,serif;font-size:13px;font-weight:700} .site-liberation .block-call-items .mini-tpl h4{font-size:16px;font-weight:700} -.site-liberation .block-call-items .tpl-flash-news-29unit,.site-liberation .block-call-items .tpl-flash-news-29unit:last-of-type{border-bottom:1px dotted #ddd;margin:0 0 14px 0;clear:both} +.site-liberation .block-call-items .tpl-flash-news-29unit,.site-liberation .block-call-items .tpl-flash-news-29unit:last-of-type{border-bottom:1px dotted #ddd;margin:0 0 14px;clear:both} .site-liberation .block-call-items .tpl-flash-news-29unit .big{margin-right:28px} .site-liberation .block-call-items .tpl-flash-news-29unit .item .clear{clear:right} .site-liberation .block-call-items .tpl-flash-news-29unit .others{clear:none} -.site-liberation .block-call-items .tpl-breaking-news,.site-liberation .block-call-items .tpl-breaking-news:last-of-type{border-bottom:1px dotted;margin:0 0 15px 0;clear:both} +.site-liberation .block-call-items .tpl-breaking-news,.site-liberation .block-call-items .tpl-breaking-news:last-of-type{border-bottom:1px dotted;margin:0 0 15px;clear:both} .site-liberation .block-call-items .tpl-breaking-news h3{font-weight:700} .site-liberation .block-call-items .tpl-breaking-news h5 .date{font-weight:700;padding-left:5px} .site-liberation .block-call-items .tpl-breaking-news p.more{text-transform:uppercase;color:#e20000} diff --git a/test/data/blueprint-min.css b/test/data/blueprint-min.css index 5644f04e..ac4a4b3d 100644 --- a/test/data/blueprint-min.css +++ b/test/data/blueprint-min.css @@ -39,7 +39,7 @@ li ul,li ol{margin:0} ul,ol{margin:0 1.5em 1.5em 0;padding-left:1.5em} ul{list-style-type:disc} ol{list-style-type:decimal} -dl{margin:0 0 1.5em 0} +dl{margin:0 0 1.5em} dl dt{font-weight:700} dd{margin-left:1.5em} table{margin-bottom:1.4em;width:100%} @@ -62,7 +62,7 @@ caption{background:#eee} .top{margin-top:0;padding-top:0} .bottom{margin-bottom:0;padding-bottom:0} label{font-weight:700} -fieldset{padding:0 1.4em 1.4em 1.4em;margin:0 0 1.5em 0;border:1px solid #ccc} +fieldset{padding:0 1.4em 1.4em;margin:0 0 1.5em;border:1px solid #ccc} legend{font-weight:700;font-size:1.2em;margin-top:-.2em;margin-bottom:1em} fieldset,#IE8#HACK{padding-top:1.4em} legend,#IE8#HACK{margin-top:0;margin-bottom:0} diff --git a/test/unit-test.js b/test/unit-test.js index ed18a27f..fc6dcb76 100644 --- a/test/unit-test.js +++ b/test/unit-test.js @@ -231,9 +231,9 @@ vows.describe('clean-units').addBatch({ ], 'display:none not changed': 'a{display:none}', 'longer background declaration not changed': 'html{background:none repeat scroll 0 0 white}', - 'mixed zeros not changed': 'div{margin:0 0 1px 0}', - 'mixed zeros not changed #2': 'div{padding:0 1px 0 0}', - 'mixed zeros not changed #3': 'div{padding:10px 0 0 0}', + 'mixed zeros not changed': 'div{margin:0 0 1px 2px}', + 'mixed zeros not changed #2': 'div{padding:0 1px 0 3px}', + 'mixed zeros not changed #3': 'div{padding:10px 0 0 1px}', 'multiple zeros with fractions #1': [ 'div{padding:0 0 0 0.5em}', 'div{padding:0 0 0 .5em}' @@ -277,6 +277,25 @@ vows.describe('clean-units').addBatch({ 'div{border-width:1em 1em 1em 1em}', 'div{border-width:1em}' ], + 'padding - same pairs': [ + 'div{padding:15.5em 10.5em 15.5em 10.5em}', + 'div{padding:15.5em 10.5em}' + ], + 'margin - same 2nd and 4th value': [ + 'div{margin:1px 2px 3px 2px}', + 'div{margin:1px 2px 3px}' + ], + 'padding - same 3 values': [ + 'div{padding:1px 1px 1px}', + 'div{padding:1px}' + ], + 'padding - different 3 values': 'div{padding:1px 1em 1%}', + 'margin - 3 callapsible values': [ + 'div{margin:1ex 2ex 1ex}', + 'div{margin:1ex 2ex}' + ], + 'margin - 3 different values': 'div{margin:1px 1px 3px}', + 'border width - 3 different values': 'div{border-width:1px 2px 3px}', 'padding - same 2 values': [ 'div{padding:1px 1px}', 'div{padding:1px}' -- 2.34.1