zoukankan      html  css  js  c++  java
  • 学习总结

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

    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放置在元素的左上角,并重复垂直和水平方向。
    提示:请设置一种可用的背景颜色,这样的话,假如背景图像不可用,可以使用背景色带代替。

  • 相关阅读:
    阿里fastjson工具类
    poi导出excel2007版本
    java 利用poi 实现excel合并单元格后出现边框有的消失的解决方法
    spring整合atomikos实现分布式事务
    彻底理解ThreadLocal
    kubernetes架构和组件
    Promethues实战-简易教程系列
    Celery
    对称加密,非对称加密,证书机制
    Git diff
  • 原文地址:https://www.cnblogs.com/young-ma/p/9211613.html
Copyright © 2011-2022 走看看