CSS 备忘录-基础内容

news2024/12/28 20:48:18

目录

1、CSS的基本结构

2、样式表的来源以及优先级

3、选择器的优先级 

4、源码顺序

5、px、em、rem单位

6、视口相对单位

7、使用 calc() 来定义属性值

8、一些无单位的属性

9、自定义属性

10、使用 JavaScript 来动态修改自定义属性

11、overflow 属性

12、子元素定位于父元素中央常用实现方法

 12-1)绝对定位方式

12-2)flex 布局

12-3)grid布局

13、猫头鹰选择器

14、让文本居中显示

1)使用 line-height 和 text-align

2)使用flex

15、FlexBox弹性容器布局

16、gird 网格布局

17、如果有文本溢出提前用省略号代替

1、单行文本的省略号处理:

 2、多行文本的省略号处理:

3、如果是多行文本但是没有控制好高度和行高:

18、 使用伪元素来绘制CSS三角形

19、input 元素自带的两个可能想覆盖的样式


1、CSS的基本结构

        以下是CSS的一个声明,由一个属性和一个值组成:

color:black;

        包含在大括号内的一组声明被称作一个声明块。声明块前有一个选择器。选择器和声明块一起构成一个规则集。

        下面是一个规则集:

.my-img{
    width: 100vw;
    height: auto;
}

2、样式表的来源以及优先级

        浏览器默认的样式是用户代理样式表;作者样式表是我们开发者自己写的样式表,如果有相同的声明,则作者样式表将覆盖用户代理样式表中的声明。

        标记了!important的声明会被当做更高优先级的来源,很难被覆盖掉,应该尽量少使用。

color:black !important;

        行内样式将直接覆盖任何样式表或来自<style>标签的样式。

3、选择器的优先级 

        id选择器 > 类选择器 > 标签选择器。

        若 id 选择器数量最多,则该规则集胜出;

        若 id 选择器数量一致,则类选择器多的规则集胜出;

        若 id 选择器和类选择器的数量一致,则标签选择器多的规则集胜出;

4、源码顺序

        如果两个声明的来源和优先级相同,则出现在样式表较晚或者位于页面较晚引入的样式表中,那么该声明将胜出。

5、px、em、rem单位

        px:像素,相对长度单位,为相对于显示屏分表率而言的;

        em:相对长度单位,相当于当前对象内文本的字体尺寸,可以会继承父级元素的字体大小;

        rem:相对Html根元素的字体大小;

可以通过改变 html 根元素的字体大小来改变使用了rem的元素的大小(:root 就是 html 元素):

:root{
    font-size: 10px;
}

         浏览器的默认字体尺寸是 16px。

6、视口相对单位

        视口即浏览器窗口网页可见部分的边框区域(不包括状态栏、工具栏、地址栏)。

        vh:视口高度的1/100;

        vw:视口宽度的1/100;

        vmax:视口高、宽中最大一方的1/100;

        vmin:视口宽、高中最小一方的1/100;

7、使用 calc() 来定义属性值

        可以进行不同单位之间的四则运算:

font-size: calc(10px + 1.2em);

        注意:+、- 符号前后必须要有空格;

8、一些无单位的属性

        1)line-height

        2)z-index

        3)font-weight

        4)opacity

        5)flex-grow  && flex-shrink

9、自定义属性

        自定义属性规则:变量名之前必须有两个连字符(--),变量名必须在一个声明块中声明,当要使用该变量时,调用函数var(自定义的变量)。

        如果一个自定义属性是在一个属于某个标签的规则集中定义的,那么他的后代都能够使用该自定义属性。(在 :root 选择器中声明,那么该变量可以在整个网页中使用)。

:root{
    --my-font-size: 20px;
}

div{
    font-size: var(--my-font-size);
}

10、使用 JavaScript 来动态修改自定义属性

let rootEle = document.documentElement;        // 获取根元素
let styles = getComputedStyle(rootEle);        // getComputedStyle() 获取一个元素的style对象
let myFontSize = styles.getPropertyValue('--my-font-size');
console.log(String(myFontSize).trim());        // 将输出 20px

var size = parseInt(myFontSize);
rootElement.style.setProperty('--my-font-size', size + 2 + 'px');    // 将--my-font-size 设置为22px

11、overflow 属性

        控制溢出内容的行为,支持四个值:auto、scroll、hidden、visible;

        1)auto:当内容溢出才展示滚动条;

        2)scroll:在一些操作系统上可能展示水平和垂直滚动条,即使不溢出,此时滚动条置灰;

        3)overflowX、overflowY设置单一方向上的溢出,支持以上四个值。

12、子元素定位于父元素中央常用实现方法

    <div class="parent">
        <div class="child"></div>
    </div>

 12-1)绝对定位方式

.parent{
    position: relative;
}
.child{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}

12-2)flex 布局

.parent{
    display: flex;
    justify-content: center;
    align-items: center;
}

12-3)grid布局

.parent{
    display: grid;
    justify-content: center;
    align-content: center;
}

 

13、猫头鹰选择器

        基本形式:.className * + *{...}

        表示选择指定元素下的所有子元素中的非首元素。

    <div class="outer">
        <div class="inner">
            <ul>
                <li>a</li>
                <li>b</li>
                <li>b</li>
            </ul>
        </div>
        <div class="inner">
            <ul>
                <li>a</li>
                <li>b</li>
                <li>b</li>
            </ul>
        </div>
        <div class="inner">
            <ul>
                <li>a</li>
                <li>b</li>
                <li>b</li>
            </ul>
        </div>
    </div>

        li{
            margin: 6px 0;
        }
        .inner * + *{
            background-color: brown;
        }

        .inner 下的元素是 ul ,在这里将选中所有 li 下的第二个到第三个元素,将背景设为红色。

 附:选择指定元素下的所有子元素中的首元素

.inner * :first-child{
    background-color: pink;
}

14、让文本居中显示

<div class="text">文字内容</div>

1)使用 line-height 和 text-align

        .text{
            width: 100px;
            height: 50px;
            background-color: antiquewhite;

            text-align: center;
            line-height: 50px;
        }

2)使用flex

        .text{
            width: 100px;
            height: 50px;
            background-color: antiquewhite;

            display: flex;
            justify-content: center;
            align-items: center;
        }

15、FlexBox弹性容器布局

1、设置display: flex; 或 display: inline-flex; 将元素设置为弹性容器,其直接子元素为弹性子元素。

        弹性子元素默认从左到右按顺序排列。

        弹性容器像块元素一样能填满宽度,但是弹性子元素不一定能填满弹性容器的宽度。

        弹性子元素的高度相等(flex-direction:row; 时,即默认方向排列),该高度由他们的内容决定。

2、子元素默认按照主轴线排序,主轴方向自左到右,副轴方向垂直与主轴,方向从上到下。

3、弹性盒子内直接子元素的auto外边距会自动填满所有可用空间,即离外侧范围达到最大。

4、flex

        4-1、flex属性:控制弹性子元素在主轴方向的大小(默认情况下flex-direction:row; 在弹性子元素中设置flex控制元素的宽度。flex-direction:column;时,在弹性子元素中设置flex控制的是元素的高度)。

        4-2、flex是一个简写属性,包括flex-grow、flex-shrink、flex-basis。

                4-2-1、flex-grow是增长因子,多出来的留白将按照每个弹性子容器的增长因子进行分配。如果一个弹性子容器的增长因子为0,那么他的宽度(或高度)不会超过其flex-basis的值。如果一个弹性容器的增长因子不为0,那么他会增长到所有剩余空间被分配完。flex-grow的值越大,其权重越高。一个增长因子为2的弹性子元素的大小是一个增长因子为1的弹性子元素的大小的两倍。

                4-2-2、flex-shrink代表每个弹性子元素在弹性元素溢出时收缩的权重。当弹性元素内容溢出,某个弹性子元素的flex-shrink为0,则该元素不收缩;当flex-shrink不为0时,将进行收缩,权值越大,收缩的比重越多。

                4-2-3、flex-basis定义元素大小的基准值,即一个初始的“主尺寸”。初始值为auto,此时浏览器会检查该元素是否有设置width属性,如果有,则使用width作为flex-basis的值;如果没有,则根据内容来确定。如果flex-basis的值不是auto,那么元素的width属性将被忽略。

         4-3、flex简写属性的默认值为 1 1 0%;分别对应flex-grow,flex-shrink,flex-basis。在设置flex时,如果某个子属性的值被省略,那么简写属性会给出默认值。如果没有使用flex简写属性,那么没有设置的子属性值不会有默认值。

       4-4、flex-direction 能够切换主副轴的方向,取值有四个:row、column、row-reverse、column-reverse。

        4-5、当flex-direction的方向为column或column-reverse,主轴将发生旋转。对于内部弹性子元素,flex-grow、flex-shrink、flex-basis作用域元素的高度而不是宽度。

            弹性容器的高度由弹性子元素决定,他们会正好填满容器。在主轴是垂直方向的弹性盒子里,子元素的flex-grow和flex-shrink不会起作用,除非有外力的影响强行改变盒子的高度,即可以是弹性盒子自定义的高度。

5、弹性容器的属性:

(1)flex-direction:设置主轴的方向

(2)flex-wrap:nowrap (初始值) | wrap | wrap-reverse

            指定弹性子元素是否会在弹性容器中折行/列显示(放不下就折行/列)

(3)flex-flow:<flex-direction> <flex-wrap>的简写

(4)justify-content:flex-start (初始值) | flex-end | center | space-around | space-between

            控制元素在主轴上的位置

(5)align-items:flex-start | flex-end | center | stretch | baseline (根据第一行文字的基线对齐)

            控制元素在副轴上的位置

(6)align-content:flex-start | flex-end |center | stretch | space-around | space-between

            如果开启了flex-wrap,align-content会控制弹性子元素在副轴上的间距。如果没有换行,则会忽略align-content属性。

6、弹性子元素的属性:

(1)flex-grow

(2)flex-shrink

(3)flex-basis

(4)flex:flex 属性就是 flex-basis  flex-grow  flex-shrink 的合并简写;

(5)align-self:auto | flex-start | flex-end | center | stretch | baseline

            控制子元素在副轴上的对齐方式,将覆盖掉容器上的align-items属性的值。如果子元素副轴方向上的外边距为0,则会忽略该属性。

16、gird 网格布局

1、设置属性display:grid;将容器设为网格容器,容器内的直接元素为网格元素。

        容器表现为块级元素。

        也可以使用inline-grid;元素将表现为行内元素,宽度只能够包含内容大小。

2、grid-template-rows:定义网格每行的大小;

      grid-template-columns:定义网格每列的大小;

      使用一个新的单位 fr ,为分数单位,grid-template-columns:1fr 1fr 1fr;即构造等宽的三列。

      不一定非要使用分数单位。grid-template-columns:1fr 300px;设置两列,第二列宽300px,第一列占满全部剩余的位置。2fr的宽度是1fr的宽度的两倍。

      grid-gap:定义网格之间的间距。grid-gap:0.5em 1em;定义垂直方向距离0.5em,水平方向距离1em。

3、网格中的四个重要的概念:网格线、网格轨道、网格单元、网格区域。

4、在定义多个重复的网格轨道时可以使用简写函数repeat():

        如grid-template-columns:repeat(4,auto);即定义了四个宽度为auto的列。

        另外,repeat(3,1fr 2fr);定义六个轨道,等价于这样书写1fr 2fr 1fr 2fr 1fr 2fr。

      还可以这样书写:grid-template-rows:1fr repeat(2,2fr 4fr) 1fr;则等价于1fr 2fr 4fr 2fr 4fr 1fr。

5、网格线的默认编号:

    列从左往右,1 2 3 4 5...;

    行从上往下,1 2 3 4 5...;

 

        可以在 grid-colum 或 grid-row 属性中用网格线的编号指定网格元素的位置:如想要一个网格元素在垂直方向上跨越1号网格到3号网格,则可以给网格元素设置grid-column:1 / 3 ; 中间的斜线仅用来区分两个值,前后的空格没有要求。

        grid-column和grid-row都是简写属性,如grid-row是grid-row-start和grid-row-end的简写。

        同时,可以用 span 关键字来指定一个网格轨道长度。如grid-row:span 2;则告诉浏览器元素需要在垂直方向上横跨两个网格轨道(即占两行)。

6、命名网格线:

        可以给网格线命名,在布局的时候用网格线名称代替其默认的编号。

        如:grid-template-columns:[start] 1fr [center] 2fr [end];该声明定义了两条网格轨道,分别为1fr 和 2fr ,三条网格线,名称分别为 start、center 、end。然后在定义网格元素在网格中的位置时,可以使用名称来声明,如grid-column:start / end;

        还可以给一条网格线提供多个名称,如:grid-template-rows:[top-start] 1fr [top-end,bottom-start] 1fr [bottom-end];则在这条声明里,水平2号网格线具有两个名称。

        这里需要注意,将网格线命名为 top-start 和 top-end,就定义了一个区域,这个区域覆盖两个网格线之间的空间,-start 和 -end后缀作为关键字,定义两者之间的区域,如果给网格元素设置grid-row:top;则他会跨越从top-start到top-end的区域。

        注意,当使用如repeat(3 , [top-start] 1fr 1fr);来生成网格时,等价写法如下:[top-start] 1fr 1fr [top-start] 1fr 1fr [top-start] 1fr 1fr ;

7、命名网格区域:

        容器中:grid-template-areas 属性  设置网格区域;

        元素中:grid-area 属性  设置放置的区域

    <div class="container">
        <div class="header"></div>
        <div class="content"></div>
    </div>
        .container {
            display: grid;
            width: 500px;
            height: 500px;
            grid-template-columns: 1fr 3fr;
            grid-template-rows: 100px 1fr 80px;
            grid-template-areas:
                "header header"
                "sidebar content"
                "footer footer";
        }

        .header {
            grid-area: header;
            background-color: #5fe929;
        }
        .content {
            grid-area: content;
            background-color: #c22121;
        }

 

        grid-template-areas中有多个字符串,每一个字符串都代表网格区域的一行,字符串内用空格分开列。

        注意:每个区域都要设置为矩形,不能设置为其他特殊的图形;

        可以使用 . 作为占位名称,这样能空出一个网格单元

8、显式和隐式网格

        隐式网格轨道默认为auto,他们会扩张到能容纳网格元素的内容。可以给网格容器设置grid-auto-columns 和grid-auto-rows,为隐式网格轨道定义一个大小。如grid-auto-rows:1fr;

        使用minmax()函数分别指定最大尺寸和最小尺寸,浏览器会确保轨道的大小介于这两者之间。

        使用方式如:grid-template-rows:repeat ( auto-fill, minmax(200px , 1fr ) ) ;则将最小行高设置为200px;

        repeat 函数中的 auto-fill 关键字为一个特殊值,设置了该值以后,只要网格放得下,浏览器就会尽可能多的生成轨道,并且不会跟指定的minmax()大小产生冲突。

        auto-fill 和 minmax() 加在一起就能让网格在可用空间内尽可能的多产生轨道。如果元素不够填充所有的网格轨道,auto-fill就会导致一些空的网格轨道。如果不希望出现空的网格轨道,可以使用 auto-fit 关键字来替代 auto-fill。他会让非空的网格轨道扩展,并填满可用空间。

        默认情况下,当一个元素无法再某一行容纳,布局算法会自动将他移动到下一行,在下一行的位置寻找足够大的空间来容纳他。使用 grid-auto-flow 可以控制布局的算法行为。其初始值为row,先前描述的就是这个值的行为。如果值为 column,它将会将元素优先放在网格列中,只有当一列填满了,才会移动到下一行。

        还可以额外添加一个关键字 dense,如grid-auto-flow:column dense;它让算法紧密地填满网格里的空白,尽管这会改变某些元素的顺序。使用这个值,小的元素就会回填大的元素造成的空白区域。

        默认情况下,每个网格元素都会扩展并填满整个网格区域,但是网格元素的子元素不会填满网格元素。使用img标签展示图片时,img有一个特殊的属性能控制图片的缩放拉伸:object-fit。取值可以为 cover、contain、fill 等。默认值为fill,整个图片将缩放,以填满img元素。使用cover将扩展图片,让他填满盒子(图片的一部分将被裁减);使用contain将缩放图片,让他完整地填充盒子(导致盒子中可能出现空白)。

17、如果有文本溢出提前用省略号代替

        主要使用的属性为:text-overflow

        有五个属性:clip(将溢出的内容裁剪掉);ellipsis(用省略号代替);string(用给定的字符串替代省略的文本);initial(默认值);inherit(继承)

        注意,如果需要使用省略号来处理溢出内容,需要在块级元素中使用,并且要搭配 white-space:nowrap;(单行时) 和 text-overflow:hidden; 来使用。

        如果要设置文本的溢出用省略号代替,一般要设置文本元素的高度、宽度以及文本的行高。如要设置文本内容显示两行,且该元素的宽度为 x,则一般设置文本的行高为一半的元素高度,防止换行展示。

1、单行文本的省略号处理:

<div class="container">
        如果要设置文本的溢出用省略号代替,一般要设置文本元素的高度、宽度以及文本的行高。
        如要设置文本内容显示两行,且该元素的宽度为 x,则一般设置文本的行高为一半的元素高度,防止换行展示。
</div>
        .container {
            background-color: antiquewhite;
            width: 200px;
            height: 50px;
            text-overflow: ellipsis;
            white-space: nowrap;
            overflow: hidden;
        }

 2、多行文本的省略号处理:

        多行文本要换行,所以不需要 white-space :nowrap;

        使用 display:-webkit-box;弹性盒子布局。

        .container {
            background-color: antiquewhite;
            width: 200px;
            height: 50px;
            text-overflow: ellipsis;
            padding: 0 16px;
            box-sizing: border-box;

            /* white-space: nowrap;    如果是一行以上的就要开启换行 */
            line-height: 25px;          /* 设置行高 */
            overflow: hidden;
            display:-webkit-box;
            -webkit-box-orient: vertical;	/* 设置对齐方式 */
            -webkit-line-clamp: 2;		    /* 第二行文本后面加省略号 */
        }

3、如果是多行文本但是没有控制好高度和行高:

        .container {
            background-color: antiquewhite;
            width: 200px;
            height: 50px;
            text-overflow: ellipsis;
            padding: 0 16px;
            box-sizing: border-box;

            /* white-space: nowrap;    如果是一行以上的就要开启换行 */
            /* line-height: 25px; 不控制行高 */
            overflow: hidden;
            display: -webkit-box;
            -webkit-box-orient: vertical;	/* 设置对齐方式 */
            -webkit-line-clamp: 2;		    /* 第二行文本后面加省略号 */
        }

18、 使用伪元素来绘制CSS三角形

        当元素没有内容,但边框的大小不为零,则会形成下图的样式,四个三角形构成一个正方形,每一个三角形对应一个边。可以只让一条边有可视的颜色,其余边设置透明的颜色(transparent),那么可以作出一个三角形。

        可以直接使用元素来做,也可以使用元素的伪类来完成(::after 、::before)

div{
    content:'';	/* 如需正常显示,则需要content */
    border: 30px  solid;
    border-color: transparent  black  transparent transparent;	 /* 将边框右边的三角形填充为黑色,其余的都是透明的边 */
    position:absolute;
    /* 使用定位将元素定位到需要的位置上 */
}

 

19、input 元素自带的两个可能想覆盖的样式

        outline、border-style

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/704776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【单片机】STM32单片机的各个定时器的定时中断程序,标准库,STM32F103

文章目录 定时器1_定时中断定时器2_定时中断定时器3_定时中断定时器4_定时中断定时器5_定时中断 高级定时器和普通定时器的区别&#xff08;https://zhuanlan.zhihu.com/p/557896041&#xff09;&#xff1a; 定时器1_定时中断 TIM1是高级定时器&#xff0c;使用的时钟总线是R…

bochs编译安装

编译命令 ./configure --prefix‘/usr/local/bochs2.7’ --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11 make sudo make install 配置文件 bochsrc # configuration file generated by Bochs plugin_ctrl: unmapped1, biosde…

让开源项目从易用到好用 | 亚马逊的开源文化

亚马逊的领导力准则是亚马逊文化的核心&#xff0c;它如同亚马逊的 DNA 融入贯穿每一个重要决策&#xff0c;深深影响着每一位亚麻人、影响着每一位亚马逊的客户、合作伙伴以及每一位亚马逊云科技的构建者。同时&#xff0c;亚马逊的领导力准则对亚马逊与开源的互动方式也产生着…

如何设计一个文件系统?需要考虑哪些因素?

文件系统的实现 在对文件有了基本认识之后&#xff0c;现在是时候把目光转移到文件系统的实现上了。之前用户关心的一直都是文件是怎样命名的、可以进行哪些操作、目录树是什么&#xff0c;如何找到正确的文件路径等问题。而设计人员关心的是文件和目录是怎样存储的、磁盘空间…

数字孪生和GIS融合会为城市交通带来哪些便利?

数字孪生和GIS的融合对于城市交通领域带来了诸多便利&#xff0c;从智能交通管理到出行体验的提升&#xff0c;为城市交通带来了全新的发展机遇。 首先&#xff0c;数字孪生技术与GIS的结合可以实现智能交通管理。通过GIS建立城市交通网络的数字孪生模型&#xff0c;可以实时模…

程序员找工作难!拿到外包公司的 offer 我应该去么?

引言 前一阵子有一个帖子引起了非常广泛的讨论&#xff0c;描述的就是一个公司的外包工作人员&#xff0c;加班的时候因为吃了公司给员工准备的零食,被公司的HR当场批评&#xff01;这个帖子一发出来&#xff0c;让现在测试行业日益新增的外包公司备受关注。那么外包公司和非外…

Qt开发1--QCustomPlot的第一个示例

本文记录了在Linux上使用QCustomPlot进行一个基本绘制所需的完整过程&#xff0c;包括如何使用qtcreator&#xff0c;编辑ui以及编写相应的C代码。以下是详细步骤&#xff1a; 1、使用qtcreator启动开发环境&#xff1a; [blctrlmain-machine qt]$ qtcreator 启动后&#xf…

GBDT精讲

GBDT算法的流程 首先GBDT是通过采用加法模型(即基函数的线性组合)&#xff0c;以及不断减小训练过程产生的残差来达到将数据分类或回归的算法。 GBDT通过多轮迭代&#xff0c;每轮迭代产生一个弱分类器&#xff0c;每个分类器在上一轮分类器的梯度(如果损失函数是平方损失函数…

Quiz 4: Functions | Python for Everybody 配套练习_解题记录

文章目录 课程简介Quiz 4: Functions 单选题&#xff08;1-9&#xff09;编程题Exercise 4.6 课程简介 Python for Everybody 零基础程序设计&#xff08;Python 入门&#xff09; This course aims to teach everyone the basics of programming computers using Python. 本课…

JAVA2

文章目录 前言 前言 创建&#xff0c;编译java&#xff08;每4修改一次就要重新编译&#xff01;&#xff09; 第一个程序&#xff1a; 解决中文乱码问题&#xff1a; 效果&#xff1a; 总结&#xff1a;

管理类联考——英语——趣味篇——词根词汇——按频次分类——高频词汇——List1

优化原书记忆方法&#xff0c;轻松搞定考研单词 摒弃了传统的以字母顺序排序的方法&#xff0c;结合近20年考研真题&#xff0c;通过电脑搜索等方法对核心词进行科学统计&#xff0c;将核心词有机地分为高频词汇、常考词汇、中频词汇、低频词汇等4大部分&#xff0c;同时还补充…

一个三极管和稳压管构成的简易稳压电源

一个三极管和稳压管构成的简易稳压电源 先看电路 原理分析&#xff1a; 实际使用中可以加入合适的滤波电容。 上面的电路原理看着比较简单&#xff0c;但还是有不少要注意的地方。 来看看仿真电路的结果&#xff1a; 可以看到&#xff0c;输出的电压并不是我们想要的结果&am…

高压线路距离保护程序逻辑原理(五)

六、系统振荡的判断与振荡闭锁程序逻辑框图 &#xff08;一&#xff09;系统振荡概述 电力系统的振荡大致可以分为两种情况&#xff1a;一种是静稳破坏引起系统振荡&#xff0c;另一种是由于系统内故障切除时间过长&#xff0c;导致系统的两侧电源之间的不同步而引起的系统振…

【单片机】MSP430单片机,1.3寸 IIC OLED ,显示驱动

文章目录 main.coled.holedfont.h main.c #include <msp430.h> #include "OLED.h"int main( void ) {WDTCTL WDTPW WDTHOLD; /* Stop WDT */if ( CALBC1_8MHZ 0xFF ) /* If calibration constant erased */{while ( 1 ); /* do n…

C++ DAY4

1.思维导图 2.运算符重载 #include <iostream> using namespace std;class Person { private:int age;int *p; public://1.无参构造Person():p(new int(89)){age 18;}//2.有参构造Person(int age,int num){this->age age;this->pnew int(num);}//3.拷贝构造函数…

数据库中的日期函数DM和mysql都通用,计算年月日时分秒,获取日期之间相差的值

select MINUTE(date) from t_test; year month day hour minute second --对应年月日时分秒 select date from t_test select MINUTE(createtime),to_char(sysdate(),yyyy-MM-dd) select TIMESTAMPDIFF(minute,date,now()),date from t_test DateUtil.between(new Date(),ne…

小程序底层技术机制解读:版本更新与底层运行原理

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言小程序版本更新机制…

Day.3 LeetCode刷题练习(反转链表)

题目&#xff1a; 例子&#xff1a; 分析题目&#xff1a; 分析题目&#xff0c;因为是一个单链表所以不能找到尾后往前改变&#xff0c;所以不妨换个思路从前往后进行修改链表链接关系 用到三个指针 指针cur指向所要改变的节点链接关系、指针prev指向所要改变节点的前一个节点…

白盒测试入门概念

白盒测试的度量 根据待测产品的内部实现细节来设计测试用例白盒测试的执行手段是可以涵盖单元测试、集成测试使用代码覆盖率作为白盒测试的主要度量指标 代码覆盖率常见概念 语句覆盖&#xff1a;每行代码都要覆盖至少一次判定覆盖&#xff1a;判定表达式的真假至少覆盖一次…

CSS文字阴影渐变动画效果

最近项目中需要一些简单的动画效果&#xff0c;就写了一个文字渐变的动画效果,纯CSS动画.文字加了一点阴影效果,看起来有发光哒感觉~ 效果如下图 大家可以自己拷贝代码亲自试一试 代码看下面 html <div class"son"> Particia </div>css .son {color…