项目1 前端开发总结

前端采用技术栈为:

  • vue
  • nuxt.js
  • iview
  • jqeury

遇到两大问题:

  • 各个屏幕尺寸之间 分辨率自适应问题
  • 各个浏览器版本之间的兼容性问题

遇到的小问题

  • 轮播图片、轮播动画
  • css3动画
  • postion定位
  • 服务端字体 与 客户端字体的显示问题
  • 各个屏幕分辨率下 字体粗细问题
    ·

解决:

  1. 各个屏幕尺寸之间 分辨率自适应问题

    • 采用iview的响应式布局。
    • 在开发过程中版心的宽度尽量不要写成百分比,依京东、简书为例;版心的宽写成固定宽度的值。
    • 采用iview布局的话好像只在IE9以上版本才可以用,但用vue的话也只能支持IE9以上版本了。
  2. 各个浏览器版本之间的兼容性问题

    • 一般情况下,浏览器没问题,但IE内核除外! 国产浏览器大部分都是双核或三核的(IE兼容+IE+谷歌内核)
    • 比如在用js给元素添加class值的时候,现今主流浏览器以及推荐办法都是 item.classList.add(“style”);但这种办法在IE版本中(含IE11版本) 和 QQ浏览器兼容模式以及百度浏览器下都是不支持的。
    • 然后jquery就应运而来了,jquery 在添加class的时候有一个addClass的API,这个在主流浏览器下也是没问题,但IE流 就不行啦。还好jquery提供了另外了一种API: ( ′ p ′ ) . a t t r ( ′ c l a s s ′ , ′ s t y l e ′ ) ; 这 样 添 加 的 话 浏 览 器 各 个 版 本 都 是 支 持 的 。 a t t r 这 个 A P I 非 常 有 意 思 , 比 如 ('p').attr('class','style');这样添加的话浏览器各个版本都是支持的。attr这个API 非常有意思,比如 (p).attr(class,style);attrAPI(‘p’).attr(“1”, “2”);这时再看dom,发现p元素多了一个1=2的属性。
    • 最终解决各浏览器内核间不兼容问题的办法是: 在页面head中加入meta标签,强制使用谷歌内核或最高版本的IE内核。
    <!-- 强制Chromium内核,作用于360浏览器、QQ浏览器等国产双核浏览器 -->
    <meta name="renderer" content="webkit">
    <!-- 强制Chromium内核,作用于其他双核浏览器 -->
    <meta name="force-rendering" content="webkit">
    <!-- 如果有安装 Google Chrome Frame 插件则强制为Chromium内核,否则强制本机支持的最高版本IE内核,作用于IE浏览器 -->
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    
    <!-- 提示低版本IE访问用户升级 -->
    <script>
        /*@cc_on window.location.href="http://support.dmeng.net/upgrade-your-browser.html?referrer="+encodeURIComponent(window.location.href); @*/
    </script>
    

    (@cc_on 是 IE10 及更旧版IE特有的条件编译语句,因此可以用来判断是否除 IE11 以外的其他IE版本。)

  3. css3动画:
    我是c3动画配合postion来做动画等的;postion的话 指定父盒子 relative, 子盒子absolute;然后配合c3动画就实现了。
    关于c3动画的使用(我用到以下两种):

.long{
    height: 70px!important;
    transition: height 0.5s ease-out;

    # height 规定设置过渡效果的 CSS 属性的名称。
    # 0.5s 规定完成过渡效果需要多少秒或毫秒。
    # ease-out  规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))(相对于匀速,开始时快,结束时候间慢
    链接:https://blog.csdn.net/Candy_10181/article/details/80611009
}
.topUP{
    top:72px;
    animation: top 0.5s;
}
@keyframes top {
    0% {
        top:0px;        
    }
    100% {
        top: -24px;
    }
  }

# 这个应该都能看懂,不解释了
  1. 前端项目指定自定义字体显示
    1)定义字体名称和自定义字体路径。
  /* SourceHanSansCN-Regular */
  @font-face {
    font-family: '我的自定义字体';   //这里是你自定义字体的名称
    // 以下是字体路径
    src: url('../../fonts/SourceHanSansCN-Regular-Alphabetic.eot');
    src: url('../../fonts/SourceHanSansCN-Regular-Alphabetic.eot?#iefix') format('embedded-opentype'),
         url('../../fonts/SourceHanSansCN-Regular-Alphabetic.svg#SourceHanSansCN-Regular-Alphabetic') format('svg'),
         url('../../fonts/SourceHanSansCN-Regular-Alphabetic.ttf') format('truetype'),
         url('../../fonts/SourceHanSansCN-Regular-Alphabetic.woff') format('woff'),
         url('../../fonts/SourceHanSansCN-Regular-Alphabetic.woff2') format('woff2');
  }

关于生成不同.ttf,.woff,.eot格式字体文件和生成以上的css,推荐一网站:https://onlinefontconverter.com/

2)在同一css中正常引用上方设置的名称即可。

p{
    font-family: '我的自定义字体';
}

关于@font-face 更多参考:http://www.511yj.com/css-font-face.html

关于更多,请访问: http://www.ofus.ink

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值