zoukankan      html  css  js  c++  java
  • 信步拾遗之中英文留白

    在前几天,看到了一篇博客,整体感觉很舒服,但又说不出来为啥,认真看了下,发现原来他的中英文有留白,字里行间感觉非常好,然后回过头看自己的博客,惨不忍睹,怎么能忍,改,马上改。

    网络上实现中英文留白的方式很多,我选了一种 js 实现方式,并写了一个小型的中英文留白格式转换 js 程序。

    一、中英文留白程序

    盘古脚本下载路径:https://github.com/vinta/pangu.js

    <html>
    <script src="https://cdn.bootcss.com/pangu/3.3.0/pangu.min.js">
    </script>
    <style type="text/css">
    .alfred_box {
    	margin-top:5px;
    	border: 1px solid #a0b3d6; 
    	95%;
    	height:90%;
    }
    </style>
    <script>
    	function littleblank(){
    		var text = pangu.spacing(document.getElementById('beautiful').innerText);
    		document.getElementById('beautiful').innerText = text;
    	}
    </script>
    <body>
    	<input type="button" value="想要 beautiful 下吗?点这里" onclick="littleblank()" />
    	<div id="beautiful" class="alfred_box" contenteditable="true"><br /></div>
    </body>
    </html>
    中英文留白.html

    效果图:

    image

    二、JS 异步加载

    在搜索资料的时候,看到一哥们为了节约 10ms 加载时间(我实际测试大概节约5ms,可能是我网络比较好,我居然去测试了,也是闲的 w(゚Д゚)w),搞了个 JS 异步加载,蛮有意思的,顺手研究了下。
    一般对于初学者, HTML 页面的 script 标签都会写在 head 标签部分,这会导致一个问题,阻塞所有页面渲染工作,使得用户在脚本加载完毕并执行完毕之前一直处于 “白屏死机” 状态。为什么呢?因为 JS 的加载是一个由上而下的过程,又称阻塞模式或同步模式,之所以要同步执行,是因为 JS 中可能有输出 document 内容、修改 dom等行为,所以默认同步执行才是安全的。

    我们看到的很多网页是把 <script> 放在页面末尾 </body> 之前,这也是比较通行的一种 js 加载优化方式,为了尽可能减少阻塞行为,先让页面展示出来。

    旁的不多说,转换程序异步加载版本如下,使用的是较为通用的方式,通过 js 方法动态生成 script 节点,在一些支持 H5 的浏览器中,也可以使用 script 标签的 async 属性或 defer 属性指定该脚本异步加载,两者的区别主要在于脚本下载完之后何时执行,在此就不进行细说,有兴趣的可以放狗搜下。

    <html>
    <script>
    (function(u, c) {
      var d = document, t = 'script', o = d.createElement(t),
          s = d.getElementsByTagName(t)[0];
      o.src = u;
      if (c) { o.addEventListener('load', function(e) { c(e); }); }
      s.parentNode.insertBefore(o, s);
    })
    ('https://cdn.bootcss.com/pangu/3.3.0/pangu.min.js', function() {
      //做一些你在完成加载后想做的事情吧
    });
    </script>
    </script>
    <style type="text/css">
    .alfred_box {
    	margin-top:5px;
    	border: 1px solid #a0b3d6; 
    	95%;
    	height:90%;
    }
    </style>
    <script type="text/javascript">
    	function littleblank(){
    		var text = pangu.spacing(document.getElementById('beautiful').innerText);
    		document.getElementById('beautiful').innerText = text;
    	}
    </script>
    <body>
    	<input type="button" value="想要 beautiful 下吗?点这里" onclick="littleblank()" />
    	<div id="beautiful" class="alfred_box" contenteditable="true"><br /></div>
    </body>
    </html>
    中英文留白.html

    OK,完事,在盘古脚本官网看到作者在一本正经的瞎扯淡,下面这段话,哎哟,我去,该摆什么表情呢。。。

    汉学家称这个空白字元为「盘古之白」,因为它劈开了全形字和半形字之间的混沌。另有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其馀三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。
  • 相关阅读:
    循环计时器
    在一个表格里,超过一定宽度字符串进行截取显示点点,鼠标移上去显示全
    判断单选框是否被选中
    美化的select下拉框
    js获取网页高度
    Bootstrap的使用。。。
    解决网站出现GET .woff 404 (Not Found)的问题
    Bootstrap 字体图标(Glyphicons)
    一个设置为display:none;的div,在用.height()方法获取不到它的高,获取到的高度为0.
    substring() slice() substr()的区别联系
  • 原文地址:https://www.cnblogs.com/alfredinchange/p/10842021.html
Copyright © 2011-2022 走看看