01|字母x CSS世界中隐匿的举足轻重的角色
因为涉及到排班或者说对齐的,其实都是离不开一个基本的概念:baseline(基线 )
line-height行高的定义就是两基线的间距,vertical-align的默认值也是基线(字母x的下边缘 )!
01|字母X与CSS中的x-height
其中x-height是CSS中的一个概念,表示小写字母x的高度,其术语的意思表示为 baseline和midline之间的距离!
其中在所谓的排版中还有另外一些概念,如下所示:
ascender height 上行线高度
cap height 大写字母高度
median 中线
descender 下行线高度
其中CSS中有些概念和这个所谓的x-height还是有关系的! 典型的代表就是 vertical-align:middle;
middle表示中间的意思,其实和上面介绍的median是没有关系的, middle表示的是 基线往上1/2 x-height的高度
我们的话可以立即为x交叉点的位置!
但是微软雅黑相较于别的字体来看是字符下沉比较厉害的字体,一年春vertical-align:middle; 不是相对容器中分线对齐的了!
其实这又说到了 因为CSS世界中的主题是文字,内容元素对齐是相对于文字对齐的,而并非外部的块级容器!
02|字母x与CSS中的ex
ex其实就是IE6都老早支持的ex单位,其实也是一个CSS中的一个相对单位,指的就是小写x的高度! 也就是所谓的 x-height!
其实所谓的em,px还是受字体等CSS属性影响较大! 由于字母x受字体影响比较大,不稳定,因此ex也不适合来限定元素的尺寸!
但是他的应用场景体现在 不受字体和字号影响的内联元素垂直居中对齐!
我们设置垂直居中的时候 就可以借助这个ex来进行垂直居中!
预览请见:https://demo.cssworld.cn/5/1-1.php
因为不管字体怎么变换 内联元素都是按照文字基线对齐的,
02|内联元素的基石line-height
div高度是由行高决定的并非文字,通过p114中的案例就可以很好地说明了!
并对于纯非替换元素的内联元素,可视高度完全有line-height决定!
那么如果说替换元素或者说是块级元素那么对应的line-height其中有扮演着什么角色呢?
其中就需要很好的理解所谓的 行距和半行距 的概念了!
当前文字的上方和下方的间距都是半间距! 半间距仅仅是行距高度的一半!
其实所谓的 行距=行高-字体盒子 || 行距=(line-height )-(font-size )
01|为什么line-height可以让内联元素"垂直居中 "
我们一般流传着 高度和行高一致 可以让单行文字垂直居中 !
其实这种说法不严谨,误区二,其实行高控制不仅仅适用于单行,其实多行也是可以的!
详情见p119
那么为什么说垂直居中说法不严谨呢? 其实详细通过测量会发现 还是会发现细微差别的! 其实和line-height无关,而是与vertical-align相关的!
02|line-height的好朋友vertical-align
为什么说line-height的好朋友是vertical-align呢? 因为凡事line-height起作用的地方vertical-align也一定的起了作用,但是大部分默默地起了作用 只是我们不知道而已!
其实可以通过一个小的案例体现出来:
文字
通过这段代码,看看具体的行高为多少?
可能有些人看到了会认为是32px,其实没有设定height属性,所以高度就有line-height来确定,因此这里明摆着的高度就是为32px,其实事实却不是如此,其实实际上要比32px要大上几像素!(和对应的字体相关 )
实际的效果通过鼠标选中 发现对应的高度不为line-height的高度32px!
其实所谓的box的高度不等于line-height,之所以对应的行高不等于对应的32px就是因为line-height的"朋友 "搞的鬼!
03|vertical-align家族基本认识
抛开对应的inherit这类全局属性不谈的话,可以将对应的vertical-align的属性值分为4类:
线类: baseline top middle bottom
文本类: text-top text-bottom
上标下标类: sub,super
数值百分比类: 20px 2em 20%
其实所谓的数值百分比 其实应该分为 数值类 和对应的 百分比类 因为他们之间有不同的共性
具有相同的渲染规则 根据计算值的不同 相对于基线往上或者是往下偏移!
并且默认的对齐方式 是按照基线对齐,因此如果如果说对应的vertical-align的值为正数的话 那么则向上偏移 如果为负数的话 则向下偏移 也就可以验证对应的baseline其实是对应着vertical-align的默认值为0!
对应的vertical-align:middle也不是百分之百的垂直居中的,其实还是有些差别的 并且对应的差别也是由于这个字体和字号所决定的!
并且在CSS世界中,凡是百分比的值均是需要一个相对计算的值的,比如说margin和padding的话 是相对于宽度计算的,line-height是相对于font-size计算的,而这里的vertical-align属性的百分比值则是相对于line-height的计算值计算的!
01|vertical align作用的前提
其实vertical align作用的前提就是:只能够应用于内联元素以及display值为table-cell的元素!
也就是说了 只能作用于 inline,inline-block,inline-table或者说table-cell的元素上面!
当然有些属性设置会改变元素的display的值的! 就比如说 浮动或者说绝对定位 会导致元素变成块级元素!
有人说table-cell会无视行高,其实并不是这样的,而是对应的vertical-align起作用的是table-cell元素自身!
02|vertical-align和line-height之间的关系
其实vertical-align和line-height之间的关系比较明确,就是"朋友关系",因为最明显的就是vertical-align计算的,但是表面所见的这点关系实际上只是冰山一角!
之前介绍到的设定了行高和对应的字号大小,之后的话呢,高度是否等于对应的行高,最后的结果却不是我们所设定的行高!
其主要原因是因为字号的印象,因为文字全部是按照基线对齐,因此当两个字号不同的蚊子在一起的时候,彼此会发生上下位移,如果位移距离足够大的话,就会超过行高的限制!
其实间隙产生的三大元凶便是:
幽灵空白节点
line-height
vertical-align
为了更好地理解,我们将在幽灵节点的位置放置字母x替代 幽灵空白节点!
如何更好地解决这个问题:
图片块状化
容器的line-height足够小
容器的font-size足够小
图片设置vertical-align属性值!
03|深入理解vertical-align线性类属性值
inline-block与baseline,vertical-align的属性的默认值baseline在文本之类的内联元素那里就是字符x的下边缘,对于替换元素则是替换元素的下边缘但是如果说是inlineblock元素的话规则则要复杂一些了:
一个inline-block元素如果说里面没有内联元素的话,或者overflow不是visible则该元素的基线就是其margin底边缘;否则其基线里面最后一行内联元素的基线!
这里的话,分享一下总结的一套基于20px图标对齐的处理技巧,该技巧有以下3个要点:
图标高度和当前行高都为20px 将图标原先拓展成统一规格! 可以节约大量CSS以及对每一个图标对其进行不同处理的开发版本
图标标签里面永远有字符 这个可以借助对应的:before和:after伪元素生成一个空格字符串轻松搞定!
图标CSS不使用overflow:hidden保证肌纤维里面字符的基线,但是要让里面潜在的字符不可见!
04|了解vertical-align:top/bottom
基本表现类似,只是一个"上"一个"下"因此和在一起讲
定义具体如下:
元素底部或者说当前行框盒子的顶部对齐
table-cell 元素底部padding边缘和表格行的顶部对齐
如果是内联元素,则和这一行高度最高的内联元素的顶部对齐
如果说display计算值是table-cell的元素的话,我们不妨脑补成"
" 元素 则和' '元素上边缘对齐!
其实bottom的话,和top正好相反!
并且需要注意的是,内联元素的上下边缘对齐的这个"边缘 "是当前"行框盒子 "的上下边缘,并不是块状容器的上下边缘!
其实在该属性中的top和bottom值可以说是最容易理解的了vertical-align属性值了,并且对应的表现也相当的稳定! 不会出现难以理解的现象! 常常在实际开发的过程中用到!
05|vertical-align:middle与近似垂直居中
其实在我们日常开发中的line-height和对应的vertical-align所实现的垂直居中,其实都是"近似垂直居中 "! 原因与vertical-align:middle的定义相关!
内联元素:元素的垂直中心点和行框盒子基线往上1/2 x-height处对齐
table-cell元素:单元格填充盒子相对于外面的表格行居中对齐!
基本上所有的字体当中,字符x的位置都是偏下一点儿的,并且是字号越大偏移越明显!
因此导致的vertical-align:middle实现的都是"近似垂直居中! "
其实如果说要实现真正意义上的垂直居中的话,那么需要将X的位置在容器垂直方向的正中间即可!
通常的做法是通过font-size:0;
根据line-height的半行间距上下等分原则,其实这个点就在整个容器的垂直中心位置!
但是我们在日常开发的过程中会发现,font-size的值可能在12px和在14px之间的! 虽然说效果是 "近似垂直居中 "但是还是比较难察觉出其中细微的差距的! 因此是否需要实现真正意义上的垂直居中,还需要不断的权衡!
06|深入理解vertical-align文本类属性值
其实文本类属性值就是text-top和text-bottom,其中具体的定义如下:
简单介绍所谓的内容区域:FireFox/IE浏览器文本选中的背景区域,默认状态下的內联文本的背景色区域!
对应的"父级内容区域 "其实也就是父级元素当前font-size和font-family下应有的内容区域 的大小!
定义可以理解为假设元素后面有一个和父元素font-size,font-family一模一样的文字内容,则vertical-align:text-top;标识元素和这个文字的内容区域的上边缘对齐!
其实讲到这里可以通过预览发现其中的表现在哪里?
预览请见:https://demo.cssworld.cn/5/3-9.php
看到了对应的区别之后呢,来讲讲以下几个明显的优势:
文本类属性值的垂直对齐与左右文字大小和高度都没有关系,线性类属性的定位都会受到兄弟内联元素的影响!
文本类属性值的垂直对齐可以像素级精确控制,如果是线性雷属性值中的基线和对应的line-height都是无法精确控制垂直居中对齐的! 图文对齐可以控制父元素的font-size 如果是文字对齐可以改变文字的line-height 精确控制对其位置!
其实也从侧面说明了问题,就是CSS设计之初的初衷可能非常的简单,但是结果呢可能却满天飞! 有些属性值应该有大成,实际却无人问津 ! (vertical-align中的文本类属性的属性值就是之一! )
其中主要的原因如下:
使用场景缺乏 当前的CSS重构主要以"精致布局 "为主,对齐文本的场景相比旧时代要少很多!
文本类垂直对齐理解成本高 一般人可能会用margin定位或者说relative,资深一点可能会用vertical-align数值的方式进行调整,但是呢对应的文本类属性值却很少用,"难以理解 " 不方便!
内容区域不直观并且内容区域的"易变" 现在实际上对外的项目都要求 精确布局并且像素级还原, 但是内容区域本身默认是看不见的, 并且 内容区域大小是默认和字体font-family相关的,如果说在不同的平台上面运行的话,现实是不同的,内容区域的不同会导致布局对齐的位置也不同,产生了对应的“不兼容 ”,如果说对视觉要求较高的话,该问题就比较严重了!
这样一来 文本类属性在理论上面强大,但是如果说应用到实际层面开发中的话使用价值却非常有限!
07|简单了解vertical-align上标下标类属性值
在vertical-align下标类属性值指的就是sub和super两个值!对应的就是下上标!
在HTML中有
和
两种标签,语义上其实和我们的sub和super其实是一致的!也是上下标的关系!
其实他们两对不一般啊,sup标签默认的vertical-align属性值是vertical-align就是super,sub对应的也就是sub!
ProbeDream123 //其实就是 ProbeDream123 其中的123在ProbeDream右上角!
ProbeDream456 //其实也就是ProbeDream456 其中的456在ProbeDream左下角!
基本上所谓的vertical-align上下标属性值的实际应用价值也就只有这么点了! 通过下面的定义就知道了:
vertical-align:super; 提高盒子的基线到父级合适的上标基线位置!
vertical-align:sub; 提高盒子的基线到父级合适的下标基线位置!
其中在定义中的合适的意思就显得有点模棱两可了,就非常让人蛮茫然!与此同时,我们还要注意,vertical-align上下标属性值并不会改变对应元素的文字大小 ,更不要被 sub和sup标签给误导了! 因为这两个HTML标签的默认的font-size为smaller!
算是对之前内容的一个必要的总结,对于内联元素,有一个"幽灵空白节点 "和"无处不在的vertical-align属性 "
虽然说同属性线性雷属性值,但是top/bottom和baseline/middle却是完全不同的两个帮派,前者是看边缘和看盒子,但是后者是和字符x打交道!
并且与此同时还需要了解内联盒模型,不同属性值定义完全不同,且很多属性table-cell元素有着不同的定义,同时最终表现与字符x,line-height,font-size,font-family属性密切相关! 需要对这些属性有比较深入的了解!
在本文中示例的展示都是单属性值和默认值baseline如何作用的,但是实际开发的时候会经常出现两个内联元素同时设置baseline意外属性值的情况,但是实际上 , vertical-align个类属性值并不会存在互相冲突的情况!但是某个vertical-align的属性值确实会影响某个元素的表现,但是并不是直接的,因此我们在分析复杂场景的时候,仅需要套用定义分析当前的vertical-align值的作用就行了!
基于vertical-align属性的水平垂直居中的弹框!
预览请见:https://demo.cssworld.cn/5/3-10.php
其中相较于传统的JavaScript精确计算弹框的位置,有以下优点:
1.节省了很多无谓的JavaScript代码,并且不需要浏览器进行热size事件之类的处理,弹框内容动态变化的时候,无需重新定位!
2.性能更快,喧嚷速度更快,浏览器内置CSS的即时渲染器比JavaScript处理的更好!
3.可以非常灵活控制垂直居中的比例
4.容器设置了overflow:auto可以实现弹框高度超过一屏是依然能够看见屏幕外的内容,传统实现方法则比较尴尬!
你可能感兴趣的:(05|内联元素与流)
Kubernetes——组件
窒息う
Kubernetes kubernetes 容器
文章目录K8S的优势核心架构角色与功能集群图例K8S的优势能管理大量跨主机容器快速部署应用快速扩展应用无缝对接新的应用节省资源,优化硬件资源的使用核心架构master(管理节点)node(计算节点)images(镜像节点)角色与功能Master功能提供集群的控制对集群进行全局决策检测和响应集群事件Master节点核心组件APIServer是整个系统的对外接口,提供客户端和其他组件调用后端元数据存储
讲解Linux内核操作系统——进程状态与转换
Linux加油站
网络 服务器 运维
一.进程控制进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。在操作系统中,一般把进程控制用的程序段称为原语,原语的特点是执行期间不允许中断,它是一个不可分割的基本单位。1.1创建进程UNIX中进程为树状层次结构,Windows下所有进程没有层次结构允许一个进程创建另一个进程,创建者称为父进程,被创建的进程称为子进程。子进程可以继承父进程
pat甲级刷题计划-字符串
清尘浊水ll
PTA c++ 算法 c语言
PAT甲级刷题计划-字符串字符串整理的共19题(持续整理中),后续会整理相应的题号。题目参考自acwing~,争取在8月份前完成更新!目录1.计算a+b2.拼写正确3.签到与签出4.密码5.男孩vs女孩6.字符串减法7.说法方式8.约会(1061)1.计算a+b并以标准格式输出总和----也就是说,从最低位开始每隔三位数加进一个逗号(千位分隔符),如果结果少于四位则不需添加。输入格式共一行,包含两
感恩日记第二天
情雪儿
我十分幸运能够拥有健康的身体,因为拥有健康的身体我可以开心的工作和学习;我感到十分快乐,并感激拥有一份喜欢的工作,因为工作让我每天过得很充实与安心;我十分感激拥有金钱,因为金钱能让我满足内心想要拥有的物品;我要衷心地说声谢谢,感谢领导对我的关照,因为一直在关心和支持着我的工作和生活;我要衷心感谢自己,因为无论各种状况都在坚持着自己的好习惯;我感到十分幸福,因为一直在背后默默支持着我的爱人,无论何种
184、学校心理健康教育2
47ee4fd45a42
亲子关系的类型,1养育型亲子关系。2财产拥有型亲子关系。3冲突型亲子关系。4泛爱型亲子关系。父母过度保护孩子。5民主型亲子关系。亲子关系存在问题的原因,1父母对孩子的期望过高。2父母教养方式不当。3家庭结构与父母婚姻状况。4不正确的教育观念。家长应如何改善亲子关系,一、学会尊重孩子:1接纳孩子的感受。2尊重孩子的个体差异。3尊重孩子的独立性和自主性。4学会赏识。5信任孩子。二、多与孩子沟通,做孩子
人老了怎么办?
妍妍爱养生64
很多人在闲暇之余,是否有想过,自己老了怎么办?人都是会老的,没有一个人会不老,人也不会一下子变老的,随着时间的推移,随着年龄的长大,老是在不知不觉中表现出来的,但是拥有一个健康的身体和良好的心态,固然也会让自己的晚年过得多姿多彩。为了防止我们的老年生活变成与疾病作斗争的时光,我们就要做到未雨绸缪,在中年时期就要做到保养身体,为老年积累一些本钱,使老年的健康时光延续的长一些。要做到两个“要"和三个”
赏帮赚微信提现截图,只要一部手机两小时赚30元
氧惠购物达人
一单一结的微信兼职30元,要说当今什么样的兼职最火爆,那当属微信正规兼职最火,因为现在微信是全球使用人数最多的app,正所谓有人的地方就有生意,只要你有微信,会使用智能手机,你就可以去操作,几乎没有门槛,像微信关注公众号赚钱,微信转发文章赚钱,微信投票赚钱等等。购物、看电影、点外卖、用氧惠APP!更优惠!氧惠(全网优惠上氧惠)——是与以往完全不同的抖客+淘客app!2022全新模式,我的直推也会放
享受亲子时光
古阅育儿
在这个因为疫情防控而产生的超长假期里,让忙碌的家长们有了跟孩子长时间相处的经历。一些家长怨声载道,说孩子在家整天鸡飞狗跳,怎么管都管不住,就盼着疫情早点结束,好早点把孩子送去学校。而我在这段跟孩子亲密相处的时光里,真切地感受到孩子就像是一座宝藏,身上有太多闪亮的东西等着我们去挖掘,走进孩子的世界,真正看见孩子,与孩子亲密相处,感受孩子对我们的爱,同时我们也深深爱着孩子,这是在给我们赋能,而不是消耗
《3~6岁儿童学习与发展指南》
浅嫣婉语_db1d
4-5岁幼儿的发展指标1.身高和体重适宜。4~5岁的幼儿比起3~4岁的幼儿,身高增长得比较明显,而体重变化则不是很大。这是因为幼儿的发育进入了相对缓慢的时期,而不像3岁以前那样成长得快。《指南》确定的4-5岁幼儿身高与体重成长的参考标准为:男孩身高100.7~119.2厘米,体重14.1-24.2公斤;女孩身高99.9-118.9厘米,体重13.7-24.9公斤。比较3~4岁的幼儿,4~5岁幼儿的
2022-05-03
一颗桃子V5
1.把喜欢碾碎了,________①把喜欢碾碎了,藏在字里行间的书信里。②把喜欢碾碎了,与恨意一并埋葬。③把喜欢碾碎了,梦里偷偷喜欢着。”把喜欢碾碎了,再也不见,不念,也不怨”“你说我对你的爱太过平淡,于是我把喜欢碾碎了,后来便有了群星璀璨,萤火满天”“把喜欢碾碎了,藏在对你所讲的所有废话里”喜欢你,朝朝暮暮都是你。窗前的一盆月季花发了几支花骨朵,偷偷期盼着花开。没过几天,花没开便干枯掉落了。才发
开微信公众号怎么赚钱?解析盈利策略与实操指南
氧惠_飞智666999
微信公众号成为了人们获取信息、交流思想的重要平台。越来越多的人选择开设自己的微信公众号,希望通过这一平台实现个人价值或创造经济效益。那么,开微信公众号怎么赚钱呢?本文将为您详细解析微信公众号的盈利策略与实操指南。公众号流量主就找善士导师(shanshi2024)公众号:「善士笔记」主理人,《我的亲身经历,四个月公众号流量主从0到日入过万!》公司旗下管理800+公众号矩阵账号。代表案例如:爸妈领域、
PON光模块的独特类型和特性
audrey-luo
网络 光模块 PON模块 PON技术
在当前互联网需求快速增长的背景下,PON光模块已成为实现光纤网络高速数据传输的重要组成部分。从住宅宽带到各种企业应用程序解决方案,PON光模块始终致力于实现高质量的数据传输与无缝通信。了解PON光模块的类型和特性对于深入理解现代网络基础设施至关重要,本文将探讨PON光模块的多种类型及其独特优势,展示其在现代网络连接中的重要作用。PON光模块又称无源光网络模块,是电信网络中的关键组件,有助于通过光纤
全新品牌升级的 Pencils Protocol 产品篇:层次化 Staking
Blockchain_yumi
区块链
PencilsProtocol是一个Scroll生态中的一个综合应用平台,在全新的品牌升级后(原为Penpad),其在原有的LaunchPad的基础上,进一步向收益聚合器、RWA等板块进行全新的拓展。目前,PencilsProtocol生态的整体功能板块包括LaunchPad、Staking、Vault以及Shop功能,能够为Scroll生态用户提供全面的交易服务,并且这些板块与板块间,以及与其他
白烟
陈家仁
图片发自App稍纵即逝的,是那最珍贵的,足以四书五经媲美的,宝藏。流逝指间的,是那最不舍的,晨光与夕阳相依相偎,黯然。轻轻触摸的,是那最渴望的,月儿对视阳光的距离,柔情。心底盼望的,是那最纠结的,云朵连着棉花糖欢笑,淡然。目光所及的,是心底执着的,无论你往哪个方向去,流年。
Rust中的所有权和借用规则详解
代码云1
rust 开发语言 后端
Rust是一种系统编程语言,其设计目标包括内存安全、并发安全以及性能。为了实现这些目标,Rust引入了一系列独特的编程概念,其中最为核心的就是所有权(Ownership)和借用(Borrowing)规则。本文将详细解释Rust中的所有权和借用规则,以及它们如何确保内存安全和并发安全。一、所有权规则在Rust中,每一个值都有一个与之关联的所有者。这个所有者可以是变量、数据结构或者是其他形式的存储。所
救救他们。
3236666
在你独享天伦之乐的时候。请你想想他们。他们没有财富,没有健康,没有保障,更没有尊严。一切快乐,凌驾与他们之上。只能被人踩踏。不能有自己的思想。他有一双乌黑肮脏的手。那双手早已经溃烂开始流出浓浓的脓。嘴里在叫喊。给我幸福给我希望。他们是谁他们有很多名字但是人人都叫他们奴隶。
相见欢
素弦
苏轼《洞仙歌·咏柳》江南腊尽,早梅花开后,分付新春与垂柳。细腰肢自有入格风流,仍更是、骨体清英雅秀。永丰坊那畔,尽日无人,谁见金丝弄晴昼?断肠是飞絮时,绿叶成阴,无个事、一成消瘦。又莫是东风逐君来,便吹散眉间一点春皱春路雨添花,花动一山春色。行到小溪深处,有黄鹂千百。飞云当面化龙蛇,夭矫转空碧。醉卧古藤阴下,了不知南北。——宋秦观《好事近梦中作】树绕村庄,水满陂塘。倚东风,豪兴徜徉。小园几许,收尽
2019-06-19
甜乐_ed8c
李桂芳初十五坚持分享第131天关照自己的内在小孩先处理心情,再处理事情狮子型,乌龟型,壁虎型,海豚型绿巨人→微笑女神理解→接纳→宽恕,与自己和解去融合,我很糟→我在想"我很糟"世界多元,换个视角发现生活之美!
戏感大爆发台词,配音温柔的文案长文
声优配音圈
一、戏感大爆发台词戏剧作品中,戏感大爆发的台词常常令人深受震撼。兼职副业推荐公众号,配音新手圈,声优配音圈,新配音兼职圈,配音就业圈,鼎音副业,有声新手圈,每天更新各种远程工作与在线兼职,职位包括:写手、程序开发、剪辑、设计、翻译、配音、无门槛、插画、翻译、等等。。。每日更新兼职。那些犀利而有力的台词,能够通过真实的表达,将人物内心的情感和冲突完美呈现。这些台词在剧情高潮的时刻,将观众带入紧张激动
使用 Python 和 Aria2 异步下载和解析磁力链接元数据教程
日入百万
python
磁力链接(MagnetLinks)是一种流行的用于共享文件的链接格式。与传统的种子文件不同,磁力链接直接包含文件的哈希值,使得用户无需下载种子文件就能开始下载文件。在这篇教程中,我们将介绍如何使用Python和Aria2异步下载和解析磁力链接的元数据,并提取出文件的详细信息。步骤一:准备工作在开始之前,请确保你已经安装了以下工具和库:1.**Aria2**:一个轻量级多协议和多源命令行下载工具。你
阿里云服务器ECS试用攻略,阿里云个人与企业试用云服务器介绍
阿里云最新优惠和活动汇总
一直以来,阿里云都在尽全力帮助您更好地使用云服务器,现在,阿里云为我们提供1个月试用服务,您可在一个月内免费使用云服务器,帮助实现您的业务需求。个人和企业用户均可以申请试用,个人用户可以申请基础版试用,企业用户可以申请企业版试用,下面是阿里云服务器ECS试用攻略,分为个人版和企业版。个人版试用攻略(基础版试用)适合用户:学生、个人、初创企业试用规格:新手上云1-4核产品任您选试用台数:支持1台、多
人为什么要闭上眼睛才能睡着觉?
简什么
从生理的角度去解释:人的眼皮的自然状态是下垂的,即当人的大脑不再控制眼睑(眼皮)肌肉的时候,人的眼睑是下垂的,即人的眼睛是闭着的。在人睡眠的时候,大脑的高级神经中枢是受到抑制的,所以,控制眼睑的肌肉必然是受抑制的,失去了对眼睑肌肉的控制,所以人睡眠的时候是闭着眼睛的。从生物与环境相适应的角度来解释:生物和它所生存的环境是相适应的,在睡眠时,人对外界环境的防备是有限的,而对动物而言,眼睛的作用是无与
2020-05-28
sunshu
《鬓边不是海棠红》里的京剧均出自哪些典故今天我们就来盘点一下前段时间热播的电视剧《鬓边不是海棠红》里的京剧均出自哪些典故。该剧改编自水如天儿的同名网络小说,讲述二十世纪三十年代的北平,一代天才京剧名伶商细蕊与爱国热血商人程凤台因戏结缘相知,1937年,日军占领北平,面对他们令人发指的烧杀抢掠的行径,两人在梨园百态和战火动乱中并肩奋斗前行,坚定了振兴京剧国粹的信念和定倾扶危以身救国的崇高理想,携手与
高职人工智能训练师边缘计算实训室解决方案
武汉唯众智创
人工智能训练师边缘计算实训室 人工智能训练师实训室 边缘计算实训室
一、引言随着物联网(IoT)、大数据、人工智能(AI)等技术的飞速发展,计算需求日益复杂和多样化。传统的云计算模式虽在一定程度上满足了这些需求,但在处理海量数据、保障实时性与安全性、提升计算效率等方面仍面临诸多挑战。在此背景下,边缘计算作为一种新兴的计算模式应运而生,通过将计算能力推向数据生成或用户所在的网络边缘,显著降低了数据传输的延迟,提升了处理效率,并增强了数据安全性。针对高等职业院校的人工
【JavaSE】封装、继承与多态
泡芙冰淇淋ya
JavaSE java 开发语言
1、封装1.1简介在Javase中,封装(Encapsulation)是面向对象编程(OOP)的一个重要概念。封装的主要目的是隐藏对象的内部状态和信息,只提供必要的公共方法来访问和操作这些状态和信息。通过封装可以控制对对象内部数据的访问级别,并保护数据不被随意修改,从而提高代码的安全性和可维护性。1.2特点信息隐藏:对象的内部状态(即属性或数据成员)被隐藏起来,外部世界只能通过对象提供的方法来访问
“激情欠条”在司法实务中如何认定
57b86cbb560c
裁判要旨当事人之间仅有欠条的借贷关系,因不能充分提供其他条件或证据,法院应当对形成欠条的主客观条件进行综合考量,最终作出公正的判决。案情原告杨韦华与被告乔二广自初中时相识,自高中起建立恋爱关系,随后两人同居,对二人关系,原告父母并不赞同。原告杨韦华诉称:被告以做生意为名,向原告陆续借款50万元。2012年8月8日,被告向原告出示欠条,经多次追要无果,故诉至法院请求判令被告给付欠款50万元。为支持自
北斗赋能万物互联:新质生产力的强劲驱动力
GeoSaaS
地理信息 智慧城市 机器人 物联网 人工智能 无人机
在数字化转型的大潮中,中国自主研制的北斗卫星导航系统,作为国家重大空间基础设施,正以前所未有的力量推动着万物互联时代的到来,成为新质生产力发展的重要基石。本文将深入剖析北斗系统如何以其独特的技术优势和广泛应用场景,为各行业注入新的活力,加速经济社会的智能化升级。一、北斗系统的战略地位与技术演进自2000年第一颗北斗导航卫星成功发射以来,北斗系统经历了从试验系统到全球组网的历史性跨越,如今已成为与G
GIS数据处理软件:地理信息与遥感领域的智慧引擎
GeoSaaS
地理信息 智慧城市 数据库 人工智能 大数据 gis
在地理信息与遥感技术的广阔天地间,数据处理软件如同一座桥接驳岸的智慧引擎,将海量的原始数据转化为决策的金矿,推动着城市规划、环境保护、灾害管理、资源开发等领域的深度变革。本文将深入解析其核心功能、技术前沿、应用实例及未来展望,探析数据处理软件如何为地理信息与遥感技术插上智慧的翅膀。数据处理软件的核心技术与功能矩阵数据清洗与格式转换:自动去除冗余杂乱码、异常值,格式标准化数据,确保后续处理的准确性与
面向对象编程03:封装、继承、多态
Clap of thunder
Java从零学起 java 封装 多态 继承 面向对象编程
面向对象编程03:封装、继承、多态文章目录面向对象编程03:封装、继承、多态封装继承object类supersuper注意点:`super`VS`this`:方法重写多态多态的注意事项:instanceof关键字父类与子类之间的类型转换封装该露的露、该藏的藏设计程序要追求“高内聚、低耦合”。高内聚就是类的内部数据操作细节由自己完成,不允许外部干涉;低耦合:仅仅暴露少量的方法给外部使用。封装(数据的
Python中的串口通信库pyserial(基础)
北海yy
Python相关 python 开发语言
文章目录概要基础知识1初始化串口2.写入数据3.读取数据4.关闭串口5.设置和获取串口参数6.清除缓冲区小结概要pyserial是一个Python库,它提供了与串口通信相关的功能。它可以让我们在Python程序中直接与串口设备进行通信,如读取和写入串口数据。pyserial是一个跨平台的库,可以在多个操作系统上使用,包括Windows、Linux和MacOS。pipinstallpyserial基
LeetCode[位运算] - #137 Single Number II
Cwind
java Algorithm LeetCode 题解 位运算
原题链接:#137 Single Number II
要求:
给定一个整型数组,其中除了一个元素之外,每个元素都出现三次。找出这个元素
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间
难度:中等
分析:
与#136类似,都是考察位运算。不过出现两次的可以使用异或运算的特性 n XOR n = 0, n XOR 0 = n,即某一
《JavaScript语言精粹》笔记
aijuans
JavaScript
0、JavaScript的简单数据类型包括数字、字符创、布尔值(true/false)、null和undefined值,其它值都是对象。
1、JavaScript只有一个数字类型,它在内部被表示为64位的浮点数。没有分离出整数,所以1和1.0的值相同。
2、NaN是一个数值,表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它本身。可以用函数isNaN(number)检测NaN,但是
你应该更新的Java知识之常用程序库
Kai_Ge
java
在很多人眼中,Java 已经是一门垂垂老矣的语言,但并不妨碍 Java 世界依然在前进。如果你曾离开 Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老 Java 中的新东西。
Guava
Guava[gwɑ:və],一句话,只要你做Java项目,就应该用Guava(Github)。
guava 是 Google 出品的一套 Java 核心库,在我看来,它甚至应该
HttpClient
120153216
httpclient
/**
* 可以传对象的请求转发,对象已流形式放入HTTP中
*/
public static Object doPost(Map<String,Object> parmMap,String url)
{
Object object = null;
HttpClient hc = new HttpClient();
String fullURL
Django model字段类型清单
2002wmj
django
Django 通过 models 实现数据库的创建、修改、删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField:一个自动递增的整型字段,添加记录时它会自动增长。你通常不需要直接使用这个字段;如果你不指定主键的话,系统会自动添加一个主键字段到你的model。(参阅自动主键字段) BooleanField:布尔字段,管理工具里会自动将其描述为checkbox。 Cha
在SQLSERVER中查找消耗CPU最多的SQL
357029540
SQL Server
返回消耗CPU数目最多的10条语句
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_of
Myeclipse项目无法部署,Undefined exploded archive location
7454103
eclipse MyEclipse
做个备忘!
错误信息为:
Undefined exploded archive location
原因:
在工程转移过程中,导致工程的配置文件出错;
解决方法:
 
GMT时间格式转换
adminjun
GMT 时间转换
普通的时间转换问题我这里就不再罗嗦了,我想大家应该都会那种低级的转换问题吧,现在我向大家总结一下如何转换GMT时间格式,这种格式的转换方法网上还不是很多,所以有必要总结一下,也算给有需要的朋友一个小小的帮助啦。
1、可以使用
SimpleDateFormat SimpleDateFormat
EEE-三位星期
d-天
MMM-月
yyyy-四位年
Oracle数据库新装连接串问题
aijuans
oracle数据库
割接新装了数据库,客户端登陆无问题,apache/cgi-bin程序有问题,sqlnet.log日志如下:
Fatal NI connect error 12170.
VERSION INFORMATION: TNS for Linux: Version 10.2.0.4.0 - Product
回顾java数组复制
ayaoxinchao
java 数组
在写这篇文章之前,也看了一些别人写的,基本上都是大同小异。文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅。首先,简单想一下这个问题:为什么要复制数组?我的个人理解:在我们在利用一个数组时,在每一次使用,我们都希望它的值是初始值。这时我们就要对数组进行复制,以达到原始数组值的安全性。java数组复制大致分为3种方式:①for循环方式 ②clone方式 ③arrayCopy方
java web会话监听并使用spring注入
bewithme
Java Web
在java web应用中,当你想在建立会话或移除会话时,让系统做某些事情,比如说,统计在线用户,每当有用户登录时,或退出时,那么可以用下面这个监听器来监听。
import java.util.ArrayList;
import java.ut
NoSQL数据库之Redis数据库管理(Redis的常用命令及高级应用)
bijian1013
redis 数据库 NoSQL
一 .Redis常用命令
Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用。
a.键值相关命令
b.服务器相关命令
1.键值相关命令
&
java枚举序列化问题
bingyingao
java 枚举 序列化
对象在网络中传输离不开序列化和反序列化。而如果序列化的对象中有枚举值就要特别注意一些发布兼容问题:
1.加一个枚举值
新机器代码读分布式缓存中老对象,没有问题,不会抛异常。
老机器代码读分布式缓存中新对像,反序列化会中断,所以在所有机器发布完成之前要避免出现新对象,或者提前让老机器拥有新增枚举的jar。
2.删一个枚举值
新机器代码读分布式缓存中老对象,反序列
【Spark七十八】Spark Kyro序列化
bit1129
spark
当使用SparkContext的saveAsObjectFile方法将对象序列化到文件,以及通过objectFile方法将对象从文件反序列出来的时候,Spark默认使用Java的序列化以及反序列化机制,通常情况下,这种序列化机制是很低效的,Spark支持使用Kyro作为对象的序列化和反序列化机制,序列化的速度比java更快,但是使用Kyro时要注意,Kyro目前还是有些bug。
Spark
Hybridizing OO and Functional Design
bookjovi
erlang haskell
推荐博文:
Tell Above, and Ask Below - Hybridizing OO and Functional Design
文章中把OO和FP讲的深入透彻,里面把smalltalk和haskell作为典型的两种编程范式代表语言,此点本人极为同意,smalltalk可以说是最能体现OO设计的面向对象语言,smalltalk的作者Alan kay也是OO的最早先驱,
Java-Collections Framework学习与总结-HashMap
BrokenDreams
Collections
开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操作。后来引入了Map接口,更好的描述的这种数据结构。
&nb
读《研磨设计模式》-代码笔记-职责链模式-Chain Of Responsibility
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* 业务逻辑:项目经理只能处理500以下的费用申请,部门经理是1000,总经理不设限。简单起见,只同意“Tom”的申请
* bylijinnan
*/
abstract class Handler {
/*
Android中启动外部程序
cherishLC
android
1、启动外部程序
引用自:
http://blog.csdn.net/linxcool/article/details/7692374
//方法一
Intent intent=new Intent();
//包名 包名+类名(全路径)
intent.setClassName("com.linxcool", "com.linxcool.PlaneActi
summary_keep_rate
coollyj
SUM
BEGIN
/*DECLARE minDate varchar(20) ;
DECLARE maxDate varchar(20) ;*/
DECLARE stkDate varchar(20) ;
DECLARE done int default -1;
/* 游标中 注册服务器地址 */
DE
hadoop hdfs 添加数据目录出错
daizj
hadoop hdfs 扩容
由于原来配置的hadoop data目录快要用满了,故准备修改配置文件增加数据目录,以便扩容,但由于疏忽,把core-site.xml, hdfs-site.xml配置文件dfs.datanode.data.dir 配置项增加了配置目录,但未创建实际目录,重启datanode服务时,报如下错误:
2014-11-18 08:51:39,128 WARN org.apache.hadoop.h
grep 目录级联查找
dongwei_6688
grep
在Mac或者Linux下使用grep进行文件内容查找时,如果给定的目标搜索路径是当前目录,那么它默认只搜索当前目录下的文件,而不会搜索其下面子目录中的文件内容,如果想级联搜索下级目录,需要使用一个“-r”参数:
grep -n -r "GET" .
上面的命令将会找出当前目录“.”及当前目录中所有下级目录
yii 修改模块使用的布局文件
dcj3sjt126com
yii layouts
方法一:yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如: 'theme'=>'mythm', 那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件; 如果未配置主题,那么 yii的模块就使用 protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 pr
设计模式之单例模式
come_for_dream
设计模式 单例模式 懒汉式饿汉式 双重检验锁失败 无序写入
今天该来的面试还没来,这个店估计不会来电话了,安静下来写写博客也不错,没事翻了翻小易哥的博客甚至与大牛们之间的差距,基础知识不扎实建起来的楼再高也只能是危楼罢了,陈下心回归基础把以前学过的东西总结一下。
*********************************
8、数组
豆豆咖啡
二维数组 数组 一维数组
一、概念
数组是同一种类型数据的集合。其实数组就是一个容器。
二、好处
可以自动给数组中的元素从0开始编号,方便操作这些元素
三、格式
//一维数组
1,元素类型[] 变量名 = new 元素类型[元素的个数]
int[] arr =
Decode Ways
hcx2013
decode
A message containing letters from A-Z is being encoded to numbers using the following mapping:
'A' -> 1
'B' -> 2
...
'Z' -> 26
Given an encoded message containing digits, det
Spring4.1新特性——异步调度和事件机制的异常处理
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
squid3(高命中率)缓存服务器配置
liyonghui160com
系统:centos 5.x
需要的软件:squid-3.0.STABLE25.tar.gz
1.下载squid
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz
tar zxf squid-3.0.STABLE25.tar.gz &&
避免Java应用中NullPointerException的技巧和最佳实践
pda158
java
1) 从已知的String对象中调用equals()和equalsIgnoreCase()方法,而非未知对象。 总是从已知的非空String对象中调用equals()方法。因为equals()方法是对称的,调用a.equals(b)和调用b.equals(a)是完全相同的,这也是为什么程序员对于对象a和b这么不上心。如果调用者是空指针,这种调用可能导致一个空指针异常
Object unk
如何在Swift语言中创建http请求
shoothao
http swift
概述:本文通过实例从同步和异步两种方式上回答了”如何在Swift语言中创建http请求“的问题。
如果你对Objective-C比较了解的话,对于如何创建http请求你一定驾轻就熟了,而新语言Swift与其相比只有语法上的区别。但是,对才接触到这个崭新平台的初学者来说,他们仍然想知道“如何在Swift语言中创建http请求?”。
在这里,我将作出一些建议来回答上述问题。常见的
Spring事务的传播方式
uule
spring事务
传播方式:
新建事务
required
required_new - 挂起当前
非事务方式运行
supports
&nbs