【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/130134573
出自【进步*于辰的博客

纯文字阐述,内容比较干。并且,由于考虑到时间长了恐有所遗漏,便即兴记录,并没有对内容进行筛选、排序。因此,大家在阅读时可以直接Ctrl + F进行检索。

注:本文中“父级”指父级盒子或父级标签。

1、细节锦集

  1. div~div表示选中前div后的所有同级div;
  2. 内联元素(inline)无法设置上、下外边距。故margin: 0 auto无效,同样对行内块元素(inline-block)无效;
  3. 在不作为字体的情况下,单一显示字符,如:<,需使用

    字符实体

    \color{green}{字符实体}

    字符实体,格式:& + 实体名/实体号 + 分号。如:空格:&nbsp;

  4. 若一串字符由汉字、特殊字符、空格等组成,会自动换行;若仅包含数字、字母,且无空格,则视为单词,不换行;
  5. <a>实现本页面跳转:href = "#id"(id 是盒子id);
  6. js语句的优先级等同于行内式;
  7. 去除输入框被选中时的选中框:outline: none
  8. 滚动条:overflow: scroll
  9. transform覆盖,即当设置多个transform时,只有最后一个有效。其中,rotate会改变坐标轴方向;
  10. 定义动画时,所有位移、旋转、缩放等都相对于起始点;
  11. 修改网页标题 logo:<link ref = "icon" href = "<ico图片路径>" />
  12. 使用伪选择器创建的盒子属子级;
  13. H5之前,form 表单必须嵌套。H5中 form 表单不嵌套的方法:为<form>设置 id,并指定<input>的属性form为此 id;
  14. box-sizing样式表示是否将边框包含在width/height之内。取值:1、content-box表示不包含;2、border-box表示包含;3、inherit表示继承父级 box-sizing
  15. 设置<a>href为函数名,可实现点击链接调用函数(前端框架普遍也如此定义);
  16. 一般情况下,表单提交时正则校验最好只设置一次,因为连续校验可能出错;

2、关于定位

  1. 相对定位(relative)的参照对象是自身
  2. 绝对定位(absolute)的参照对象是父级
    先检查父级标签是否设置定位方式(无论何种定位)。若有,则参照父级标签;否则,再检查父父级标签是否设置定位方式。依次类推。若都没有设置,则参照网页(指html/body标签,具体不确定,而结果相差不大)。

4、关于层级

  1. z-index可设置层级,前提是已设置定位方式,且若是相对定位,层级会增加;
  2. 盒子层级默认为0,若是将层级设置为负数,在不改变<body>层级的情况下,盒子将不能操作;
  3. 层级会继承;
  4. 盒子的层级取决于这个盒子所在“家族”、已设置层级且“辈分”最大的盒子,其后代无法再修改层级(的确仍可以设置z-index,但无意义);
  5. 当层级相同时,后面的盒子比前面的盒子高(指距离我们眼睛越近);
  6. 定位不会改变层级,在第1点中说:“相对定位会增加层级”其实说的是第5点。若盒子设置为相对定位,则看起来此盒子会更高,而实际上层级未变;

5、全局标签属性

参考笔记一,P6.13。

  1. 设置<table>可编辑:contented:table = "true"
  2. hidden:隐藏标签,不占据空间。若要去除隐藏,需去掉hidden,修改值无用;
  3. spellcheck = "true"属性用于设置可编辑(第1点)的input[type = text]<textArea>编辑类 标签进行拼写检查。

7、功能:滚轮控制(jq)

参考笔记一,P13.5/6。

实现思路:通过动画修改scrollTop(滚动高度。“滚动高度”就是盒子的高度,即样式top)。注:scrollTop不是样式。

示例。

var footTop=parseInt($("footer").offset().top);
var se2Top=parseInt($("#section2").offset().top);
var se3Top=parseInt($("#section3").offset().top);
var se4Top=parseInt($("#section4").offset().top);
$(window).scroll(function(){
var sTop;
if($("html").scrollTop()!=0&&$("body").scrollTop()!=0){
sTop=$("html,body").scrollTop()
}else if($("html").scrollTop()==0){
sTop=$("body").scrollTop()
}else{
sTop=$("html").scrollTop()
} if(sTop>=se4Top){
$("#scroll>li").eq(3).css("background","white").siblings().css("background","none")
}else if(sTop>=se3Top){
$("#scroll>li").eq(2).css("background","white").siblings().css("background","none")
}else if(sTop>=se2Top){
$("#scroll>li").eq(1).css("background","white").siblings().css("background","none")
}else{
$("#scroll>li").eq(0).css("background","white").siblings().css("background","none") }
})

说明:

  1. offset():将标签转为对象。从而获取样式top,直接使用css('top')也可。
    注意:若没有为盒子设置样式topcss('top')返回undefined,而offset().top返回0,因为后者底层进行了处理;
  2. scroll():滚轮事件,当滚轮滚动时执行;
  3. scrollTop():返回滚动高度;
  4. siblings():返回除自身以外的所有同级盒子。

时隔多年,只能请大家自行揣摩了。。。

8、关于 css

  1. 设置样式(css)的方法很多:外链式、内嵌式、内行式和属性设置。若需要令某一样式具有最高优先级,可在样式后加:!important
  2. 外链式与内嵌式无优先级之分,在于顺序。

9、功能:轮播

参考笔记一,P13.7、P14.8。


初步效果:

实现思路:

\color{green}{实现思路:}

实现思路:
从这张图,大家就大致可以知道轮播是如何实现的。需要三个样式:定时器(setInterval())、平移(translate() / left)和过渡(transition)。

先附上这张平移图的实现源码:(草草写的。。。给大家参考一下)
1、html。(快速生成代码:div>div>div*6>img,在输入g的时候按 Tab)

<div id="border">
<div id="scroll">
<div><img src="" alt=""></div>
<div><img src="" alt=""></div>
<div><img src="" alt=""></div>
<div><img src="" alt=""></div>
<div><img src="" alt=""></div>
<div><img src="" alt=""></div>
</div>
</div>

2、css。

#border {
width: 80px;
height: 43px;
border: 5px solid red;
margin: 100px auto;
}
#scroll {
width: 480px;
height: 47px;
position: relative
}
#scroll>div {
float: left;
}

3、js。

var srcs = ['img/11.jpg', 'img/12.jpg', 'img/13.jpg', 'img/14.jpg', 'img/15.jpg', 'img/16.jpg']
$("#scroll img").each(function(i, e) {
e.width = 80
e.height - 45
e.src = srcs[i]
}) var i = 0
var move = function() {
$("#scroll").css('left', -80 * i + 'px')
i++
if(i == 6)
i = 0
}
setInterval(move, 500)

i == 5时(最后一张),将过渡归0,实现“瞬间”轮播,理论上可以实现“完美”效果(淘宝上经常出现的那种效果),实际上由于过渡需要时间,当原过渡开始时,程序继续执行,原过渡被“瞬间”过渡取代,偏移(translate() / left)也被取代,就出现了当轮播到第6张图时,瞬间回到第一张图的情况,故需要当x == 6时再执行“瞬间”过渡,但这样就出现了0.5s的停顿。

上面那张图还没有“过渡”效果,加上这个样式:

#scroll {
transition: 0.5s
}

效果:

“理想”效果:当过渡到第6张图后,下0.5s,轮播到第2张图。(时间挺长了,实现细节有些忘了。。。)

“理想”效果实现方法:

\color{red}{“理想”效果实现方法:}

“理想”效果实现方法:使用动画(animation)。由于动画不会被取代,故当x == 5时轮播,即可实现。(源码找不到了,只能请大家自行理解补充)

最后

如果大家想了解一些前端原生知识点,可查阅博文《HTML/CSS知识点锦集》。

本文持续更新中。。。

[HTML、CSS]细节、经验的更多相关文章

  1. 爱上朴实的CSS细节

    英文原文:Learning to Love the Boring Bits of CSS  未来的CSS太让人兴奋了:一方面,是全新的页面布局方式:另一方面,是酷炫的滤镜.颜色等视觉效果.这些CSS, ...

  2. webapp开发之需要知道的css细节

    引言 首先说明一下,本文分享对象是涉世未深的移动开发者,至于有经验的开发者可以自行绕道. 说来惭愧,做了几年pc端的前端开发,很少接触到webapp的移动端开发.如今有机会参与webapp的开发,发现 ...

  3. css 细节收集

    细节1……………………………………………………………………………… 一.当文字与图片在一行,需要将文字与图片底对齐,需要这样写: <li>记住密码<img src="&qu ...

  4. 相关css 细节处理 neat.css

    人性化的细节处理 例如: textarea 默认只能垂直拖动,防止宽度改变破坏布局. textarea { resize: vertical; } 汉字字号小于 12px 不易阅读,为 <sma ...

  5. (转)div+css 布局经验 - 最简单的 = 最不变形的(原创技巧)

    站酷几年了 一直饱受其恩泽 尤为感激 一直想奉献些什么 但是苦于水平 苦于奔波 今天静下心来 为大家奉献下 自己的div+css 经验 ,以下观点只代表 深海个人立场 希望为初学者提供一条" ...

  6. CSS细节

    写起这篇文章,是因为阅读张鑫旭到的一篇文章<CSS的学习瓶颈>,里面提到了要重视CSS的细节和实现机制.确实:有必要掌握一些关于CSS方面的细节,而不是遇到任何页面,都添加css.rese ...

  7. div+css 布局经验 - 最简单的 = 最不变形的(原创技巧)

    站酷几年了 一直饱受其恩泽 尤为感激 一直想奉献些什么 但是苦于水平 苦于奔波 今天静下心来 为大家奉献下 自己的div+css 经验 ,以下观点只代表 深海个人立场 希望为初学者提供一条" ...

  8. 学点css之经验总结篇章

    学css说起来应该有三天左右的时间的,加上之前了解的基础,对css有一点的感性认识了,相应代码有有比较好的把握,现在就通过分享几张照片的形式分享一下我的收获 备注:在Border的外边的部门被称作:o ...

  9. css细节:尖角处理

    在各种网站里面,我们会经常看到类似于这样的尖角:(示例:新浪微博) 它实现的方式有多种,哪种才是最简单的?哪种才是最优秀的?首先我声明一下,我还不清楚这个东西具体叫什么名字(哪位知道还望告知),暂且叫 ...

  10. css细节复习笔记——浮动

    CSS除了能够改变字体.背景和所有其他属性,还能够完成基本布局任务. div+css通过浮动和定位.盒子模型等技术应用,是最常用的布局方式. 定位的基本思想很简单,它允许定义元素框相对于其正常位置应该 ...

随机推荐

  1. 开源神器:自动生成随机 mock 数据测试对象

    测试的痛点 大家好,我是老马. 每一位开发者大部分工作都是写代码.测试代码.修BUG. 我们有很多测试代码,总是花费大量的实践去构建一个对象. 于是就在想,能不能自动填充一个对象呢? 于是去 gith ...

  2. OCR 01: EasyOCR

    Catalog OCR 01: EasyOCR OCR 02: Tesseract-OCR OCR 03: PaddleOCR Related Links Official site with onl ...

  3. 【Android】使用Binder实现进程间传递对象案例

    1 前言 使用AIDL实现进程间通讯简单案例 和 使用AIDL实现进程间传递对象案例 中介绍了使用 AIDL 进行进程间通讯,其本质仍然是Binder,aidl 文件对应生成的接口中,将服务端调用的抽 ...

  4. Js将字符串转数字的方式

    Js将字符串转数字的方式 Js字符串转换数字方方式主要有三类:转换函数.强制类型转换.弱类型隐式类型转换,利用这三类转换的方式可以有5种转换的方法. parseInt() parseInt()和Num ...

  5. thinkphp集成editormd一系列实战

    介绍 最近php搞了个博客,需要集成markdown编辑器(富文本的太low了,效率也低),用的是时下比较火的editormd,除了基本的文档编辑我这里还实现了几个自己的需求: 使用ctrl-v实现将 ...

  6. SpringCloud Bus动态刷新中心化配置

    说明 上一篇我们介绍了配置中心实战,并留下了一个配置修改后如何实现自动刷新的问题,下面就实际操作一下,首先是手动刷新单个微服务,其次是利用消息总线实现全部刷新. 手动动态刷新 动态刷新是当远程配置文件 ...

  7. weblogic CVE-2024-20931分析

    weblogic 12.2.1.4.0安装 我的环境:ubuntu 22.04 + weblogic 12.2.1.4.0 + jdk8(注:weblogic不支持OpenJDK) jdk下载安装:h ...

  8. 在Windows10中安装解压版MySQL 8.X

    在Windows 10中安装解压版的MySQL 8.X实现步骤: 1.下载MySQL安装包:https://dev.mysql.com/downloads/mysql/ 解压到指定目录,比如:D:\o ...

  9. React 组件之状态

    没有什么是不可能的,只是需要找到正确的方法. 1. 什么是状态? 状态就是组件内部特有数据的载体(组件数据挂载方式),改变数据页面就会刷新,由组件自己设置和更改,也就是说由组件自己产生.维护,使用状态 ...

  10. 【Azure 应用服务】Python Function App重新部署后,出现 Azure Functions runtime is unreachable 错误

    问题描述 Python Function App重新部署后,出现 Azure Functions runtime is unreachable 错误 问题解答 在Function App的门户页面中, ...