【CSS3】media,伪类与伪元素,outline,font-face,resize,svg,多列布局

news2024/9/21 20:33:36

❤️ Author: 老九
☕️ 个人博客:老九的CSDN博客
🙏 个人名言:不可控之事 乐观面对
😍 系列专栏:

文章目录

  • @media
    • 例子
    • resolution属性
    • orientation属性
    • aspect-ratio属性
  • 伪类与伪元素
    • :target
    • :disable/:enable
    • :valid/:invalid
    • :required/:optional
    • :indeterminate
  • 通过outline画出一个十字架
  • @font-face
  • FOUT/FOUC
  • resize属性
  • 字体图标
    • 例子:五角星
    • svg
  • 多列布局
    • column-count
    • column-width
    • column-fill
    • columns
    • column-gap
    • column-rule
    • column-span

@media

  • 这段代码是屏幕大于等与600px小于等于1000px的情况下,颜色是红色的。
  • media query不会改变选择器的优先级,即使它包裹在media query中
  • 在less和sass中,可以用选择器包裹media query,而在原生的编辑器中不行。
@media(min-width:600px) and (max-width:1000px)
{
	div{color:red}
}

例子

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    @media(max-width:700px) {
      div {
        color: red;
      }
    }

    @media(max-width:800px) {
      div {
        color: blue;
      }
    }

    @media(min-width:800px) and (max-width:1000px) {
      div {
        color: yellow;
      }
    }

    @media(min-width:1200px) {
      div {
        color: olive;
      }
    }

  </style>
</head>

<body>
  <div>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Est, necessitatibus. Officia commodi pariatur nulla
    odio libero delectus, necessitatibus praesentium accusamus a repellat repellendus, corporis debitis distinctio nemo
    placeat voluptas minima!</div>
</body>

</html>

resolution属性

  • 当像素点放大到原来的两倍的时候,字变成红色,这个主要是用在图片的放大,因为如果分辨率比较高的机器,如果用比较小的图片放大之后就会变糊,因此如果在max-resolution:1.5ddpx的时候,换成更小的图片就会比较好
    @media (max-resolution:2dppx),(resolution:144dpi) {
      div {
        color: red;
      }
      background-image:url('image-lores.png');
      background-size:100% 100%;
    }

orientation属性

  • 控制屏幕的方向,值有两个,横向:landscape,纵向:portrait

aspect-ratio属性

  • 这个是视口横纵比,aspect-ration:2/1,这个就是视口比是2:1

伪类与伪元素

  • 伪类是某一个实际元素在特定条件下的情况,例如::hover,:active;伪元素是一个新的元素,为结构添加内容的,例如:::scrollbar,::placeholder,::before,::after,::marker,::first-letter(第一个实际字符的前面),::first-line,::selection(这个是被鼠标选中的)

:target

  • 这个伪类是选中目标元素,那么何为目标元素,目标元素就是当前地址栏中#后部分所指示的元素,#后面是谁的id,谁就是目标元素,所以也可以说选中id的值为地址中#后面的内容元素
:target{
	color:red;
	background-color:yellow;
}

:disable/:enable

  • 这个搭配input使用,disable是不可以选中的时候,enable是可选中的时候,这两个是互斥的

:valid/:invalid

  • 填对了和没填对

:required/:optional

  • 必填项和选填项

:indeterminate

  • input状态下的checkbox类型,在处于中间状态的时候,可以触发:indeterminate伪类

通过outline画出一个十字架

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    span {
      outline: 1px solid red;
      font-size: 0;
    }

    em {
      display: inline-block;
      height: 50px;
      width: 10px;
      vertical-align: middle;
    }

    b {
      display: inline-block;
      width: 20px;
      height: 10px;
      vertical-align: middle;

    }

  </style>
</head>

<body>
  <span><b></b><em></em><b></b></span>
</body>

</html>

@font-face

  • 这个可以加载网络上的任何字体
    @font-face {
      /*起名字*/
      font-family: 我的在线字体;
      /*在线的字体*/
      src: url(https://www.baidu.com/foo/bar/baz.ttf);
      /*可以设定字体的类型,这样font-family就可以是一样的名字,然后可以区分是斜体字等等。。*/
      font-style:italic;
    }
  • italic是专门设计的斜体字,而oblique是倾斜得来的。

FOUT/FOUC

  • 字体加载的时候,可能会因为网 速的问题,导致特殊的字体加载的慢一些,变换的时候会发生突变,这种情况就叫做FOUT
  • FOUC是flash of unstyled content,这个会先展现html的页面,在网速不是特别好的情况下,页面突然闪一下才能加载出css的代码
  • 他们的解决方案:把(更优的方式是把首屏的样式)样式放在页面的style里,把link标签放在页面的上方

resize属性

  • 这个可以设置类似于textarea一样调整大小,值有both,horizontal,vertical,需要搭配overflow:auto
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      resize: both;
      overflow: auto;
      direction: rtl;
    }

  </style>
</head>

<body>
  <div>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Est, necessitatibus. Officia commodi pariatur nulla
    odio libero delectus, necessitatibus praesentium accusamus a repellat repellendus, corporis debitis distinctio nemo
    placeat voluptas minima!</div>
</body>

</html>

字体图标

字体图标
优势:1.矢量图,无损放大2.可以随意变色3.很好维护,增减图标不用像css精灵图一样考虑图标的位置4.也很节省空间
劣势:1.一个图标整体只能是一种颜色2.不能动画

例子:五角星

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
  <style>
    span {
      font-family: FontAwesome;
      display: inline-flex;
      flex-direction: row-reverse;
    }

    span i {
      font-style: normal;
    }

    span i::before {
      content: '\F006';
    }
    span i:hover::before{
content:'\F005';}
    span i:hover~i::before {
      content: '\F005'
    }

  </style>
</head>

<body>
  <span>
    <i></i>
    <i></i>
    <i></i>
    <i></i>
    <i></i>
  </span>
</body>

</html>

svg

  • svg是矢量图,放大也不会模糊,不是像素点的;一个图标可以是多种颜色组成;可以动画;使用起来不如字体图标方便,因为用的时候要< s v g ><u s e href=“#xxx” / >< svg> ,而字体图标就一个i标签就可以实现了;页面的顶部还得再放一个很大的svg元素。
  • z是闭合,具体的查文档即可
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <svg height=300 width=600>
<!--     <circle cx="20" cy="30" r="18" fill="red" stroke="black" stroke-width="4 "></circle>
    <rect x="30" y="50" width="80" height="100" fill="pink" stroke="blue" stroke-width="8" rx="15" ry="30" ></rect>
    
    <ellipse cx="200" cy="100" rx="50" ry="30"
      fill="blue"
        stroke="red"
          stroke-width="9"
        
      
    ></ellipse>
    
    <line x1=0 y1=0 x2=60 y2=100 stroke="violet" stroke-width="13"></line>
    /*折线*/
    <polyline points=" 10 0 30 10 40 100 100 30 200 5" stroke="black" stroke-width="2" fill="none"></polyline>
       <polygon points=" 10 0 30 10 40 100 100 30 200 5" stroke="black" stroke-width="2" fill="none"></polygon> -->
    
    <path d="M 20 20 L 50 50 V 80 H 100 A 40 40 93 1 1 100 100  C 180 40 , 270 45,250 128 S 217 247 108 225 z" stroke="black" stroke-width="8" fill="none"></path>
  </svg>
</body>
</html>
  • 之后把svg的格式变成xml的写法,上面要加上
    在这里插入图片描述

多列布局

  • 一个面滑几条线 ,字典一样的效果,因为现在的电脑越来越宽了,我们用不完这么宽的屏幕,为了读取长一些的文字,出现了多列布局,多列布局多用于杂志或者报纸。多列布局里面必须是行内布局才可以,如果是flex之类的布局,则不好用。

column-count

  • column-count:3,这个可以把一段文字分成三列,自动计算高度。可以给元素加一个属性column=,然后选择器[column=“3”]{column-count:3;}

column-width

  • 不确定有多少列,但是可以设置每列有多少宽,column-width:200px;这个可以指定元素的宽度,然后浏览器自动分列。如果宽度是600,然后分的是200,不能分3列,因为中间是有间隙的,只能分成两列,然后这两列的宽度大于200

column-fill

  • 默认每列的长度都是均等分配的,column-fill这个属性是自动填充,默认是balance,这个是平均分成3列的长度相同,如果想按顺序长度达到底部,column-fill:auto;这个属性必须得有高度的设定。
    在这里插入图片描述

columns

  • 如果column-count和column-width一起使用,最多有count列,之后尽量满足column-width;这两个可以合起来写:columns:3 150px;最多三列,宽度尽量满足150px;

column-gap

  • 默认是1em,column-gap:这个可以设置间隙的宽度。

column-rule

  • gap之间有一条线,column-rule:2px solid red;边框有哪些样式,这个线就有哪些样式;这个线不会影响布局,纯粹就是装饰行为。如果是一张图片的话,可以设置width:100%,这样就可以不超过列了。在这里插入图片描述

column-span

  • column-span:all这个是可以设置横跨多少列
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      column-count: 3px;
    }

    h3 {
      column-span: all;
      text-align: center;
    }

  </style>
</head>

<body>
  <h3>title</h3>
  <div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Distinctio, repellat omnis, perspiciatis iure cupiditate
    obcaecati quidem, illo tempora at optio labore debitis quam. Ea dolorum alias quas accusantium, recusandae ullam.
  </div>
  <h3>title</h3>
  <div>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Accusamus nisi impedit eveniet corrupti neque
    repellendus, eaque recusandae possimus officia magni officiis provident unde quos esse. Pariatur sapiente temporibus
    repellat. Voluptatibus?</div>
</body>

</html>

在这里插入图片描述

————————————————————————
♥♥♥码字不易,大家的支持就是我坚持下去的动力♥♥♥
版权声明:本文为CSDN博主「亚太地区百大最帅面孔第101名」的原创文章

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

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

相关文章

[附源码]计算机毕业设计校园生活服务平台Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【SQL教程|01】SQL简介——什么是SQL

什么是SQL SQL是一门语言 SQL是Structured Query Language的简写&#xff0c;中文译为“结构化查询语言”&#xff1b;SQL是一种用来查询和处理关系性数据库的语言&#xff0c;使用SQL我们可以&#xff1a; 增&#xff08;INSERT&#xff09;&#xff1a;可以向数据库中插入记…

图神经网络关系抽取论文阅读笔记(六)

1 一个新颖的关系元组抽取级联二元标记框架(A Novel Cascade Binary Tagging Framework for Relational Triple Extraction) 1.1 引言 本文提出了关系三元组重叠的问题&#xff08;一个sentence中有多个三元组&#xff0c;其中三元组中有的实体是同一个&#xff09;。本文将其…

TTL反相器和CMOS

CMOS电路的动态特性&#xff1a; 1.传输延迟特性 在输入电压发生变化的时候&#xff0c;因为电容得存在&#xff0c;输出时间就得到了延迟 2.交流噪声容限 交流噪声容限是大于直流噪声容限 3.动态功耗 输入电压在二分之一,所以瞬间会流过很大的电流&#xff0c;会有瞬间很…

python练习题集锦之一

python练习题集锦之一 python练习题集锦之一&#xff0c;包括&#xff1a;1.限制输入的整数范围1到10之间、2.输出100以内素数&#xff08;质数&#xff09;及其和、3.求两个数最大公约数、最小公倍数 1.限制输入的整数范围1到10之间 源码如下&#xff1a; 提示 输入错误&…

时间复杂度(Time Complexity)

预计阅读时间&#xff1a;5分钟 一、简介 时间复杂度&#xff0c;又叫时间复杂性&#xff0c;也就是我们常说的大O。时间复杂度是不容忽视的衡量算法好坏的重要指标。 时间复杂度是一个函数&#xff0c;用于描述该算法的运行时间。 举个简单的例子&#xff1a;一个20米的木头&…

基于FPGA开发板使用Verilog设计PWM呼吸灯实验

基于FPGA开发板使用Verilog设计PWM呼吸灯实验 1,实验原理2,实验模块设计2.1 RTL设计,呼吸灯模块设计2.2,测试数据,下载到FPGA开发板板级的数据2.3,两个模块综合的netlist3,管脚约束4,FPGA开发板上的`led1` 灯上显示,一个复位键`key1`5,testbench6,前仿真,波形仿真验…

Mac os 如何安装SVN

环境&#xff1a; Mac os X 问题描述&#xff1a; Mac os 如何安装SVN 解决方案&#xff1a; 1.从App Store上下载SnailSVNLite 2.下载完成&#xff0c;打开软件&#xff0c;在【SVN设置】下&#xff0c;看下面提示设置好3个路径 ~/.ssh 查找对应的文件夹&#xff0c;如…

AprilTags论文翻译

AprilTag三篇论文的简单翻译.2011,2016,2019GitHub - AprilRobotics/apriltag: AprilTag is a visual fiducial system popular for robotics research. AprilTag:一个健壮而灵活的视觉基准系统 摘要-虽然使用自然出现的特征是机器感知的重点&#xff0c;但人工特征在创建可控…

【SpingBoot定时任务】Spring自带@Scheduled、异步多线程@Async、quartz框架 定时任务示例

文章目录springboot定时任务1、基于注解(Scheduled)2、异步多线程使用定时任务3、使用quartz实现定时任务使用Springboot整合Quartz定时任务框架springboot定时任务 在springboot环境中&#xff0c;实现定时任务有两种方案&#xff1a; 使用 Spring 自带的定时任务处理器 Sched…

程序员,阿里 P8java 大神讲的 Spring 大家族原理汇总,你确定不看?

之前分享的 java 核心面试知识点已经花了三篇文章的篇幅讲完了 java 多线程并发。作为程序员来讲&#xff0c;多线程并发要学的东西确实挺多的&#xff0c;那天跟阿里程序员朋友聊天的时候&#xff0c;被绝对技术碾压了&#xff0c;多线程并发里的内容&#xff0c;能够全面的讲…

太硬核!用大数据技术预测足球胜率

点个关注&#x1f446;跟腾讯工程师学技术引言| 足球作为世界第一运动&#xff0c;充满了速度和力量的结果&#xff0c;团队与谋略的对抗。人们也说&#xff0c;足球是圆的&#xff0c;恰恰也表明了足球比赛的不可预知性&#xff0c;一切结果都皆有可能。强如巴萨&#xff0c;也…

JavaScript 简单介绍和使用

JS 环境搭建 基本语法&#xff1a; 注释&#xff1a; // 单行注释 /* 多行注释 */ 输入输出语句 // 输入输出语句 document.getElementById("btn").onclick function(){// 输入语句var message prompt("输入信息")var insure confirm("是否确认…

FrameWork之旅 -- 源代码主要目录结构

本系列的阅读&#xff0c;前提你是一个Android开发者&#xff0c;而且是一个app开发&#xff0c;并且有一定的工作经验。本系列的学习&#xff0c;不会每个细节都说明&#xff0c;会把有“看点”的地方加以说明。 我们开发或者熟悉任何软件项目&#xff0c;都要了解包名结构或…

Python学习基础笔记十五——命名空间和作用域

从Python解释器开始执行之后&#xff0c;就在内存中开辟了一个空间。 每当遇到一个变量的时候&#xff0c;就把变量名和值的对应关系记录下来。 但是当遇到函数定义的时候解释器只是象征性地将函数名读入内存&#xff0c;表示知道这个函数的存在了&#xff0c;至于函数内部的变…

Vue 插槽(slot)使用

1 为什么使用slot 组件的插槽 组件的插槽是为了让我们封装的组件更加具有扩展性。 让使用者可以决定组件内部一些内容到底展示了什么。 举例&#xff1a; 移动开发中&#xff0c;几乎每个页面都有导航栏 导航栏我们会分装成一个插件&#xff0c;比如nav-bar组件 一旦有了…

vue父子组件间数据的双向绑定

在vue中数据的流向通常是单向的&#xff0c;但是实际开发中&#xff0c;存在父子组件都需要对父组件值进行更新的情况&#xff0c;vue提供了两种方法实现数据的双向绑定&#xff1a; 1、使用v-model指令 在父组件上 v-model 会利用子组件名为 value 的 prop 和名为 input 的…

第5 部分 EIGRP

目录 5.1 EIGRP 概述 5.2 实验1&#xff1a;EIGRP 基本配置 1. 实验目的 2. 实验拓扑 3. 实验步骤 4. 实验调试 &#xff08;1&#xff09;show ip route &#xff08;2&#xff09;show ip protocols​编辑 &#xff08;3&#xff09;show ip eigrp neighbors &#…

[激光原理与应用-31]:典型激光器 -3- 光纤激光器

目录 第1章 光纤激光器概述 1.1 什么是光纤激光器 1.2 应用 1.3 光纤激光器的结构组成 1.4 特点 1.5 优势 第2章 光纤激光器的类型 2.1 按照光纤材料的种类进行分类 2.2 按增益介质分类为&#xff1a; 2.3 按谐振腔结构分类 2.4 按光纤结构分类 2.5 按输出激光特性…

基于 ARM + FPGA 的 EtherCAT 主站设计及实现

为解决实时工业以太网协议 EtherCAT 应用于嵌入式主站控制器所产生的实时性和稳定性等问题&#xff0c;首先研究了 EtherCAT 主站控制器在 EtherCAT 网络控制系统中的功能需求&#xff0c;分析并提出了实现嵌入式 EtherCAT 主站的架构&#xff0c;然后针对上述架构设计了基于 A…