zoukankan      html  css  js  c++  java
  • psd页面切割成html技巧总结

    关键字:psd切割技巧 生成html图片要点 css样式要点 rem

    与高手切割后的代码对比学习提高(考察点:切割后的页面质量,源码大小及图片大小,js技术,动画技术,开发和命名规范等)

    一、psd切割技巧 ----------

    虽然有firework工具切割,切割完就自动生成代码.但要标准规范得自己修改,而且我相信自动生成会有很多冗余和乱码。要想学好和彻底掌握制作html,还是自己动手好。

    只要勤加练习或者多做活,手写css必然孰能生巧,必然制作出的html+css 代码又少,维护又方便。写代码和练武功一样,需要持续修炼,才能成为高手。

    切割原则与技巧
    1 div划分颗粒大小适合,这样该是整体图片的就不要分开切割,否则制作又慢而且代码K数多;不好控制的,该分开切就分开。
    2 重复的图片切成宽高20px的小图,这样有利于重复使用。
    3 切割的原则还是保证图片质量,现在网速快+又有缓存。

    二、生成图片要点 ----------


    首选考虑图片质量,然后才是哪个格式文件小,就用哪个。目前wifi和3G4G等网络极速,页面传输非常快,还有就是div不是之前的table加载慢。
    jpg的一般损耗在60-80为最佳,gif的你看128和256的损耗差别大不大,不大就选128的就可以了,因为这样导出的图片小。
    还有常用的就是png文件,这个可以应用透明的特性。方便webapp透明层开发。

    三、css样式要点 ----------

    div 中的图片如何居中?
    第1个方法:图片放div中,div { margin:0px auto; }
    第2个方法:text-align:center; 垂直居中,通过paddin-top来计算=(div的高度-图片高度)/2
    当然还有其他方法。

    文字模块怎么制作合适?
    每一行缩进:padding-left:2em
    每一段缩进:text-indent:2em
    但是如何控制,第一行不缩进,其余的都缩进2个字符
    格式如下:
    1、我是第一行的文字
         要对齐的啊嘿嘿和
         对齐了
    2、我是第二行的文字
         对齐的啊
    上面这种情况,只能分开弄两个div,把数字序号放div1 把文字放div2就对齐了。

    html <radio>单选按钮控件 和html5 的差别
    css input checkbox和radio样式美化 http://www.haorooms.com/post/css_mh_ck_radio

    div 滚动条样式 overflow:auto;overflow-y:scroll;

    /* 头像:居中且是圆形,radius 100%的应用非常妙 */
    .headpic { position:absolute; top:0px; left:0px; 100%; height:100%; border-radius:100%; overflow:hidden; background-size:100%; }

    ul li中文字多换行后与下一li内容重叠怎么解决? padding-left:2em;

    四、关于分辨率,关于前端字体大小 ----------


    移动端字体单位font-size选择px还是rem
    1.对于只需要适配手机设备,使用px即可;
    2.对于需要适配各种移动设备,使用rem; 例如只需要适配iPhone和iPad等分辨率差别比较挺大的设备

    关于逻辑分辨率、物理分辨率之间的关系可以参考:「像素」「渲染像素」以及「物理像素」是什么东西?它们有什么联系?
    前端开发之字体大小px,em,rem,pt 参考:http://blog.csdn.net/ttongzw/article/details/38040947
    在W3C官网上是这样描述rem的——“font size of the root element” 。下面我们就一起来详细的了解rem。
    rem是css3出现的新的字体大小定义方式,其与em的区别是rem总是相对于html的跟元素(html),不会相对父元素,如下:
    html{
    font-size:1em;
    }
    .div2{
    font-size:2rem;

    }
    p{
    font-size:1rem;
    }

    可以看到p元素的大小并不像em一样和div2的一样大,而是与html定义的1rem一样大,为16px。
    如果p元素的字体大小为百分比%话,即直接在父元素的基础上乘以百分数,同px(即:如果设置百分比,都是相对父元素的)

    CSS3的REM设置字体大小 http://www.w3cplus.com/css3/define-font-size-with-css3-rem
    在使用“em”作单位时,一定需要知道其父元素的设置,因为“em”就是一个相对值,而且是一个相对于父元素的值,其真正的计算公式是:
    1 ÷ 父元素的font-size × 需要转换的像素值 = em值

    我们来看一个简单的代码实例:

    html {font-size: 62.5%;/*10 ÷ 16 × 100% = 62.5%*/}
    body {font-size: 1.4rem;/*1.4 × 10px = 14px */}
    h1 { font-size: 2.4rem;/*2.4 × 10px = 24px*/}

    我在根元素<html>中定义了一个基本字体大小为62.5%(也就是10px。设置这个值主要方便计算,如果没有设置,将是以“16px”为基准 )。从上面的计算结果,我们使用“rem”就像使用“px”一样的方便,而且同时解决了“px”和“em”两者不同之处。

    再比如:
    html { font-size:156.25%; /*25 ÷ 16 × 100% = 156.25%*/}
    body { font-size:1.6rem; /*1.6 × 25px = 40px */}

    五、html简单动画 ----------

    利用H5特性和js技术实现页面中动画,后续:html5+js常用动画总结 应该做个专题详细研究。

    页面动画实现办法:动画总共两类,无非就是帧动画(frame)和变形动画(tween)
    1 gif或flash动画
    2 js控制实现位移等动画
    3 css3样式控制实现动画
    4 html5新特性实现动画

    左右动的小小示例:
    $(function(){
    //左右移动的动画效果
    var changeDivPosition = function(){
    $('.a12 img').animate({'left': '1.5%'}, 600).animate({'left': '0%'}, 600);
    };
    changeDivPosition();
    objSetInter = setInterval(changeDivPosition, 1500);
    //微信邀请遮罩层
    $('#btnShare').click(function(){
    showInvite();
    });
    });

    /* 样式表:邀请透明层 */
    //最底层半透明蒙板
    .invite1 { position:fixed; top:0%; left:0%; 100%; height:200%; background:rgba(0, 0, 0, 0.8) none repeat scroll 0 0!important; filter:Alpha(opacity=80); background:#000000; z-index:1000; display:none; }
    //响应点击层
    .invite2 { position:fixed; top:0%; left:0%; 100%; height:100%; z-index:1010; display:none; }
    //点击右上角
    .invite21 { 800px; height:600px; background-image:url('../img/user/invite.png'); }
    .vpbg { background-repeat:no-repeat; background-position:center top; background-size:100%; }

    //页面调用
    <div class="invite1"></div>
    <div class="invite2"><div class="invite21 vpbg"></div></div>
    </body>
    </html>
    <script>
    var showInvite = function(){
    $('.invite1').show();
    $('.invite2').show();
    };

    $(function(){
    $('.invite2').click(function(){
    $('.invite1').hide();
    $('.invite2').hide();
    });
    });
    </script>

    ---------- ---------- ----------
    block,inline和inline-block概念和区别
    转载自:http://www.cnblogs.com/KeithWang/p/3139517.html
    总体概念

    block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素)。block元素通常被现实为独立的一块,会单独换一行;inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满。
    大体来说HTML元素各有其自身的布局级别(block元素还是inline元素):
    常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等。
    常见的内联元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR 等。
    block元素可以包含block元素和inline元素;但inline元素只能包含inline元素。要注意的是这个是个大概的说法,每个特定的元素能包含的元素也是特定的,所以具体到个别元素上,这条规律是不适用的。比如 P 元素,只能包含inline元素,而不能包含block元素。
    一般来说,可以通过display:inline和display:block的设置,改变元素的布局级别。

    block,inline和inlinke-block细节对比

    display:block

    block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。
    block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。
    block元素可以设置margin和padding属性。

    display:inline

    inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
    inline元素设置width,height属性无效。
    inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。

    display:inline-block

    简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。

    补充说明

    一般我们会用display:block,display:inline或者display:inline-block来调整元素的布局级别,其实display的参数远远不止这三种,仅仅是比较常用而已。
    IE(低版本IE)本来是不支持inline-block的,所以在IE中对内联元素使用display:inline-block,理论上IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表象。

  • 相关阅读:
    js 格式为2018-08-25 11:46:29 的日期比较方法
    ssh linux免密登录。。。。生产共钥到另一台主机
    linux shell脚本调用java main方法 代码传值
    linux shell脚本调用java main方法 代码
    java FTP各种操作
    java通过http服务执行shell命令
    linux ssh 应用
    java通过反射调用有参数的方法
    TranslucentTB汉化版安装教程及资源
    几行Python代码生成动态二维码 myqr的使用教程
  • 原文地址:https://www.cnblogs.com/wellsoho/p/5025567.html
Copyright © 2011-2022 走看看