css+html 笔记1

a 链接

  • a链接的四种状态
    • link:连接平常的状态
    • visited:连接被访问过之后
    • hover:鼠标放到连接上的时候
    • active:连接被按下的时候
  • 顺序:a:link、a:visited、a:hover、a:active

  • 注意:a:hover定义一定要放在a:link、a:visited的后面

  • :focus -> :hover -> :active

前端分为哪三层?其作用分别是什么?

  • 结构层
    • HTML 结构层用于存储客户想要阅读或查看的所有内容。
  • 表示层
    • CSS 表示层指示结构化HTML文档如何看待网站的访问者,并由CSS(层叠样式表)定义。网站的所有视觉样式都应位于外部样式表中。
  • 行为层
    • JavaScript 行为层使网站具有交互性,允许页面响应用户操作或基于一组条件进行更改。

网站重构

在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。也就是说是在不改 变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。

  • 对于传统的网站来说重构通常是: 表格(table)布局改为DIV+CSS 使网站前端兼容于现代浏览器(针对于不合规范的 CSS、如对IE6有效的) 对于移动平台的优化 针对于SEO进行优化
  • 深层次的网站重构应该考虑的方面 减少代码间的耦合 让代码保持弹性 严格按规范编写代码 设计可扩展的API 代替旧 有的框架、语言(如VB) 增强用户体验
  • 通常来说对于速度的优化也包含在重构中 压缩JS、CSS、image等前端资源(通常是由服务器来解决) 程序的性能优化 (如数据读写) 采用CDN来加速资源加载 对于JS DOM的优化 HTTP服务器的文件缓存

box-sizing

  • content-box,默认值,只计算内容的宽度,border和padding不计算入width之内
  • padding-box,padding计算入宽度内
  • border-box,border和padding计算入宽度之内

清除浮动的方法

  • 给父级div定义高度 (不推荐使用)
    • 原理:给父级DIV定义固定高度(height),能解决父级DIV 无法获取高度得问题。
    • 优点:代码简洁
    • 缺点:高度被固定死了,是适合内容固定不变的模块。
  • 使用空元素,如
    (.clear{clear:both}) (不推荐使用)
    • 原理:添加一对空的DIV标签,利用css的clear:both属性清除浮动,让父级DIV能够获取高度。
    • 优点:浏览器支持好
    • 缺点:多出了很多空的DIV标签,如果页面中浮动模块多的话,就会出现很多的空置DIV了,这样感觉视乎不是太令人满意。
  • 让父级div也一并浮起来这样做可以初步解决当前的浮动问题。但是也让父级浮动起来了,又会产生新的浮动问题。 (不推荐使用)
  • 父级div定义 display:table (不推荐使用)
    • 原理:将div属性强制变成表格
    • 优点:不解
    • 缺点:会产生新的未知问题。
  • 父元素设置 overflow:hidden、auto; (亦不太推荐使用)
    • 原理:这个方法的关键在于触发了BFC(块级格式化上下文)。在IE6中还需要触发 hasLayout(zoom:1)
    • 优点:代码简介,不存在结构和语义化问题;
    • 缺点:无法显示需要溢出的元素
  • 父级div定义 伪类:after 和 zoom;
    • 原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题
    • 优点:结构和语义化完全正确,代码量也适中,可重复利用率(建议定义公共类)
    • 缺点:代码不是非常简洁(极力推荐使用)
      .clearfix:after{content:'.';display:block;height:0;clear:both;visibility: hidden;}.clearfix {zoom:1;}
    //  精益求精写法
    .clearfix:after {content:”\200B”; display:block; height:0; clear:both;}
    .clearfix { *zoom:1; } 照顾IE6,IE7就可以了
    

CSS隐藏元素的几种方式及区别

  • display:none
    • 元素在页面上将彻底消失,元素本来占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘。
    • 不会触发其点击事件
  • visibility:hidden
    • 和display:none的区别在于,元素在页面消失后,其占据的空间依旧会保留着,所以它只会导致浏览器重绘而不会重排。
    • 无法触发其点击事件
    • 适用于那些元素隐藏后不希望页面布局会发生变化的场景
  • opacity:0
    • 将元素的透明度设置为0后,在我们用户眼中,元素也是隐藏的,这算是一种隐藏元素的方法。
    • 和visibility:hidden的一个共同点是元素隐藏后依旧占据着空间,但我们都知道,设置透明度为0后,元素只是隐身了,它依旧存在页面中。
    • 可以触发点击事件
  • 设置height,width等盒模型属性为0
    • 简单说就是将元素的margin,border,padding,height和width等影响元素盒模型的属性设置成0,如果元素内有子元素或内容,还应该设置其overflow:hidden来隐藏其子元素。
    • 如果元素设置了border,padding等属性不为0,很显然,页面上还是能看到这个元素的,触发元素的点击事件完全没有问题。如果全部属性都设置为0,很显然,这个元素相当于消失了,即无法触发点击事件。
    • 这种方式既不实用,也可能存在着着一些问题。但平时我们用到的一些页面效果可能就是采用这种方式来完成的,比如jquery的slideUp动画,它就是设置元素的overflow:hidden后,接着通过定时器,不断地设置元素的height,margin-top,margin-bottom,border-top,border-bottom,padding-top,padding-bottom为0,从而达到slideUp的效果。

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

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

相关文章

Mybatis之多表查询

目录 一、简介 1、使用嵌套查询: 2、使用多个 SQL 语句: 3、使用关联查询: 4、使用自定义映射查询: 二、业务场景 三、示例 1、一对一查询 2、一对多查询 一、简介 MyBatis 是一个优秀的持久层框架,它提供了强大的支持来执…

/bin/bash: cannot execute binary file

容器内部无法执行二进制文件 原因是docker镜像的 入口点不能指向/bin/bash。移除ENTRYPOINT ["/bin/bash"]就足以使其正常工作。 如果是下载的镜像,不能修改ENTRYPOIN,可以使用dockerfile覆盖掉原来的ENTRYPOINT FROM ubuntu ENTRYPOINT [ …

如何在Spring Boot中使用@Scheduled写定时任务判断数据量是否过大,过大则进行分表操作,多张表使用临时视图查询

当数据量过大,在定时任务中执行分表操作 1、复制表结构及数据 在xml中编写复制表结构及数据(newTableName为新表名、originalTableName为原始表名) 只复制表结构: CREATE TABLE ${newTableName} AS SELECT * FROM ${originalTa…

项目规划常用的ChatGPT通用提示词模板

项目目标明确:如何明确项目的目标,确保项目方向的一致性? 项目范围界定:如何界定项目的范围,确保项目内容的明确性? 项目需求分析:如何对项目需求进行深入分析,确保满足客户的期望…

关于征集参与《工程售后服务评价技术要求》团体标准起草单位的通知

根据 2023年团体标准管理制修订计划安排,为使标准更具专业性、实用 性和可操作性,吸纳行业内有代表性的骨干企业和专家作为起草单位和起草人 ,现就我单位牵头申报的《工程售后服务评价技术要求》团体标准公开征集起草单位和起草人。 一、 申…

常见的软件架构风格

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情 以下是最常见的建筑风格: 整体式:将整个应用程序构建为一个单元,其中所有功能和组件都从一个位置进行管理和服务。整体架构的例…

Vite5 + Vue3 + Element Plus 前端框架搭建

为了开发一套高效使用的 Vite5 + Vue3 + Element Plus 前端框架,你可以按照以下步骤进行。话不多说,先上演示地址:Vue Shop Vite。 1, 安装开发环境 开发之前,确保你的电脑已经安装了 Node.js(建议使用最新稳定版 LTS),然后安装 Vite CLI。在命令行中运行以下命令: …

信息学奥赛一本通2065:【例2.2】整数的和

2065:【例2.2】整数的和 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 83717 通过数: 70665 【题目描述】 求3个整数的和。 输入a、b、c这3个整数,求它们的和。 【输入】 3个整数。 【输出】 三个数的和。 【输入样例】 1 2 3 【输出样…

使用“反向代理服务器”的优点是什么?

反向代理服务器是一种网络架构模式,通常位于客户端和实际服务器之间,用于处理客户端请求并转发到实际服务器。以下是使用反向代理服务器的优点: 1.安全性:反向代理服务器可以提供额外的安全层。通过在反向代理服务器上配置防火墙和…

Prometheus-blackbox

一. 部署 apiVersion: v1 kind: ConfigMap metadata:name: blackbox-confignamespace: monitor data:blackbox.yml: |-modules:http_2xx: # http 检测模块 Blockbox-Exporter 中所有的探针均是以 Module 的信息进行配置prober: httptimeout: 10shttp:valid_http_versions: […

js实现 copy字符串 复制到剪切板

js实现 copy字符串 复制到剪切板 定义方法 function copyStr(str) {var oInput document.createElement(input);oInput.value str;document.body.appendChild(oInput);oInput.select(); // 选择对象document.execCommand(Copy); // 执行浏览器复制命令oInput.className oIn…

Android中的Intent

一.显式Intent 显示Intent是明确目标Activity的类名 1. 通过Intent(Context packageContext, Class<?> cls)构造方法 2.通过Intent的setComponent()方法 3.通过Intent的setClass/setClassName方法 通过Intent(Context packageContext, Class<?> cls)构造方法 通…

羊大师解读,羊奶的口味更适合哪些人群?

羊大师解读&#xff0c;羊奶的口味更适合哪些人群&#xff1f; 羊奶作为一种营养丰富的乳制品&#xff0c;拥有许多独特的品质和口味&#xff0c;备受消费者的青睐。它不仅含有丰富的蛋白质、维生素和矿物质&#xff0c;还具有更易消化的特点&#xff0c;适合许多人群的饮用。…

【KingbaseES】实现MySql函数WEEKS_BETWEEN

WEEKS_BETWEEN CREATE OR REPLACE FUNCTION weeks_between(start_date date, end_date date) RETURNS integer AS $$ BEGIN RETURN EXTRACT(WEEK FROM end_date) - EXTRACT(WEEK FROM start_date); END; $$ LANGUAGE plpgsql IMMUTABLE;结果展示

【C语言】stdbool.h——有关bool的总结

在编程和日常生活中&#xff0c;经常需要一种只能具有两个值之一的数据类型&#xff0c;如是否、开关、真假等&#xff0c;因此&#xff0c;C 有一种bool数据类型&#xff0c;称为booleans。布尔值表示 或true的值false。 C 中的 bool 是大多数语言中的基本数据类型&#xff0…

图片上传下载

数据模型: imageUrl: , <el-form-item label"楼盘图片:" prop"pic" class"uploadImg" v-model"emp.pic"> <el-upload class"avatar-uploader" …

自制java工具实现 ctrl+c+c 翻译鼠标选中文本

前言 本功能的实现基于这篇笔记 http://t.csdnimg.cn/1I8ln&#xff0c;本文阅读过程中有疑惑都可以查看此笔记 实现思路&#xff1a;检测到按压ctrl c c 后&#xff0c;获取当前剪切板文字&#xff0c;调用百度翻译api。 实现结果&#xff1a; 完整代码在最后 实现过程 1 监控…

关于鸿蒙的笔记整理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、关于样式1 . 默认单位 vp2 . 写公共样式 二 、 加载图片三 、 父子组件传值四 、 自定义构建函数 Builder五、构建函数-BuilderParam 传递UI 一、关于样式 1 .…

Java中请求生成唯一追溯TraceId

Java中请求生成唯一追溯TraceId 一&#xff1a;背景 因为是微服务架构,平常日志太多,看日志不太好查,所以想要从一整个链路当中获取一个唯一标识,比较好定位问题&#xff0c; 原理就是从gateway网关将标识传递到下游,下游服务拿到这个标识,响应结束后将traceId反向写入响应体…

[论文笔记] Megtron_LM 0、报错:vscode调试无法传进去参数 launch.json文件获取args参数

解决方法&#xff1a; 配置好launch.json文件后&#xff0c;应该点运行和调试里面的运行按钮。而不是直接点文件右上角的debug。 可以看到terminal中&#xff0c;如果没有正常加载launch.json&#xff0c;则参数中没有args的参数。 如果正常加载&#xff0c;可以看到args的很多…