对近期学习记录进行总结,重点在于记录。

1、block、inline和inline-block

参考链接为:
block,inline和inline-block概念和区别
CSS Layout - display: inline-block

简单来说:

  • block为一个块,另起一行,占据一个方块空间,宽度填满父元素。
  • inline为一行,在行内。
  • inline-block 为互为inline-block的元素会排在一行,不会另起一行,块内元素具备block的性质

学习接触到inline-block的场景是在“抄”导航栏的时候,若是inline则会边框出狂,block则三个导航会成三行,用inline-block则刚好。

inline

inline

block

block

inline-block

inline-block

扩展阅读:学习CSS布局

2、SVG与base64

SVG

参考链接为:
SVG维基百科
SVG Tutorial | MDN
def
xlink:href

SVG是XML语言的一种形式,可以用来绘制矢量图形。

SVG允许3种图形对象类型:矢量图形、栅格图像以及文本。图形对象——包括PNG、JPEG这些栅格图像——能够被编组、设计、转换及集成进先前的渲染对象中。文本可以在任何适用于应用程序的XML名字空间之内,从而提高SVG图形的搜索能力和无障碍性。SVG提供的功能集涵盖了嵌套转换、裁剪路径、Alpha通道、滤镜效果、模板对象以及可扩展性。

SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。

SVG格式是XML的一种,SVG文件其实只是普通的文本文件,用一般的文本编辑器便可查看或修改。

SVG简单例子为:

<svg version="1.1"
     baseProfile="full"
     width="300" height="200"
     xmlns="http://www.w3.org/2000/svg">

  <rect width="100%" height="100%" fill="red" />

  <circle cx="150" cy="100" r="80" fill="green" />

  <text x="150" y="125" font-size="60" text-anchor="middle" fill="white">SVG</text>

</svg>

详情可参考SVG Tutorial | MDN

我接触到的SVG是进行base64编码后作为网页背景使用,例子如下

body{
        font: 16px/1.4 sans-serif;
        background-color: #fff;
    
        background-    image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB3aWR0aD0nNjYnIGhlaWdodD0nMzMnPgoJPGRlZnM+CgkJPGcgaWQ9J2xpbmVzJz4KCQkJPGxpbmUgeDE9JzAnIHkxPScwJyB4Mj0nMTMuMicgeTI9JzE2LjUnIHN0cm9rZS13aWR0aD0nMScgc3Ryb2tlPScjZjZmNmY2Jy8+CgkJCTxsaW5lIHgxPSc5LjknIHkxPScwJyB4Mj0nMjMuMScgeTI9JzE2LjUnIHN0cm9rZS13aWR0aD0nMScgc3Ryb2tlPScjZmNmY2ZjJy8+CgkJCTxsaW5lIHgxPScxOS44JyB5MT0nMCcgeDI9JzMzJyB5Mj0nMTYuNScgc3Ryb2tlLXdpZHRoPScxJyBzdHJva2U9JyNmOWY5ZjknLz4KCQk8L2c+Cgk8L2RlZnM+Cgk8cmVjdCB4PSctMTAlJyB5PSctMTAlJyB3aWR0aD0nMTIwJScgaGVpZ2h0PScxMjAlJyBmaWxsPScjZmZmZmZmJy8+Cgk8dXNlIHhsaW5rOmhyZWY9JyNsaW5lcycgeD0nMzMnIHk9JzE2LjUnIC8+Cgk8dXNlIHhsaW5rOmhyZWY9JyNsaW5lcycgeD0nMzMnIHk9Jy0xNi41JyB0cmFuc2Zvcm09J21hdHJpeCgxIDAgMCAtMSAwIDApJy8+Cgk8dXNlIHhsaW5rOmhyZWY9JyNsaW5lcycgIC8+Cgk8dXNlIHhsaW5rOmhyZWY9JyNsaW5lcycgeD0nMCcgeT0nLTMzJyB0cmFuc2Zvcm09J21hdHJpeCgxIDAgMCAtMSAwIDApJy8+ICAKPC9zdmc+');

}

其中 background-image 中的 base64,后面一大串就是经过base64编码的SVG文件。
将那一长串进行base64解码后得到

<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='66' height='33'>
	    <defs>
    		<g id='lines'>
        		<line x1='0' y1='0' x2='13.2' y2='16.5' stroke-width='1' stroke='#f6f6f6'/>
	        	<line x1='9.9' y1='0' x2='23.1' y2='16.5' stroke-width='1' stroke='#fcfcfc'/>
		        <line x1='19.8' y1='0' x2='33' y2='16.5' stroke-width='1' stroke='#f9f9f9'/>
	        </g>
    </defs>
    <rect x='-10%' y='-10%' width='120%' height='120%' fill='#ffffff'/>
    <use xlink:href='#lines' x='33' y='16.5' />
    <use xlink:href='#lines' x='33' y='-16.5' transform='matrix(1 0 0 -1 0 0)'/>
    <use xlink:href='#lines'  />
    <use xlink:href='#lines' x='0' y='-33' transform='matrix(1 0 0 -1 0 0)'/>  
</svg> 

可见,base64编码的是一个SVG文件。
base64解码网站

base64

base64维基百科
廖雪峰讲base64
base64编码解码网站

个人理解的base64,“64”指的是,使用了64种字符来表示BASE64码,其中有 1、大小写字母共52个,2、数字10个, 3、“+” 和 “/” ,
4、由于base64是每6位进行编码总会出现除不尽的情况,此时则用“=”填充
base64很简单,看看维基百科就全都明白了。

使用base64 SVG 作为背景

小tip: base64:URL背景图片与web页面性能优化

我暂时还搞不清楚,节省一个http请求是什么意思,简单说明下就是这样操作会SVG会在背景上显示。
网上有很多SVG背景生成网站,这就是一个

延伸阅读:
Probably Don’t Base64 SVG
探究 dataURI 中使用 SVG 正确姿势
09: SVG with Data URIs

css background-image 属性

background-image属性设置一个元素的背景图像。
元素的背景是元素的总大小,包括填充和边界(但不包括边距)。
默认情况下,background-image放置在元素的左上角,并重复垂直和水平方向。
提示:请设置一种可用的背景颜色,这样的话,假如背景图像不可用,可以使用背景色带代替。

posted on 2018-06-22 01:25  混沌奇迹  阅读(277)  评论(0编辑  收藏  举报