色的属性值:不区分大小写(包括在php中)
十六进制(hexadecimal)是计算机中数据的一种表示方法。同我们日常中的十进制表示法不一样,它由0-9,A-F组成.与10进制的对应关系是:
0-9对应0-9 A-F对应10-15(A:10 B:11 C:12 D:13 E:14 F:15) 前缀名用0x来表示
颜色值的缩写:
p{color:#000000}
可以缩写为:p{color:#000000}
p{color:#336699}
可以缩写为:p{color:#369}
比如我们调一种桔红色
这种颜色的十进制颜色值为R=239;G=125;B=49,转换成十六进制为R=EF;G=7D;B=31。
C语言中写成"RGB(239, 125, 49)",也可以写成十六进制的形式"0xEF7D31",在网页HTML代码中写成"#EF7D31"。
RGB也可以写成百分百(100%,100%,0%)
RGB(100%,100%,0%)对应的红、绿分量都为255,蓝分量为0;
颜色中的RGB成分数值范围均为(0~255),用十六进制表示即(0x00~0xFF),这个范围正好占用一个字节(8位)。
因此一种颜色含RGB三种成分占用三个字节(24位),这就是24位真彩色的由来了。
如何根据RGB值来判断这是种什么颜色?
下面介绍几种典型颜色的RGB值,格式为:颜色(R,G,B)。
想象一下有红、绿、蓝三盏射灯打出三束光。
这三束光叠加在一起时产生白色,如果三盏灯的亮度都减半就产生了灰色,如果三盏灯都关掉就会一片漆黑了。
白色(255,255,255) 灰色(127,127,127) 黑色(0,0,0)
关掉绿灯和蓝灯,只亮红灯,那么只会看到一片红色;只亮绿灯或蓝灯则只会看到绿色或蓝色。
红色(255,0,0) 绿色(0,255,0) 蓝色(0,0,255)
关掉其中一盏灯,用其他两盏灯的光线叠加,则蓝+绿=青,红+蓝=洋红,红+绿=黄。
青色(0,255,255) 洋红色(255,0,255) 黄色(255,255,0)
其它颜色可以根据这几种颜色的RGB比例来判断。
橙色(255,127,0) 紫色(127,0,255) 粉绿(0,225,128)
湖蓝(0,128,255) 草绿(128,255,0) 玫瑰红(255,0,128)
某种颜色的RGB值越接近,这种颜色就越接近灰色或黑白,数值越大就越白,反之越黑。
比如RGB(150,152,183),RGB值比较接近,但是蓝色的成份较多一些,因此我们可以判断出这是一种蓝灰色。
某种颜色的RGB值如果其中一值与其它两值相差较大,而其它两值比较接近,那么根据RGB中较大的值可以知道这种颜色是比较接近红、
绿、蓝、洋红、青、黄中的一种。比如RGB(150,20,156),R和B值比较接近,G的值较小,因此这是种深紫红色;
而RGB(150,200,156),R和B值比较接近,G的值较大,因此这是种浅绿色。
这种判断方法,实际上就是我们的大脑凭直觉转换RGB为HSB的一种方法,因此实际调色时,我们一般使用HSB而不用RGB,
不过因为RGB值表示颜色的方法在电脑中极为普遍,所以还是需要了解的。
常用颜色的颜色名称和颜色代码
黑色 black #000000 栗色 maroon #800000
深蓝色 navy #000080 紫色 purpe #800080
绿色 green #008000 橄榄色 olive #808000
墨绿色 teal #008080 灰色 grey #808080
银灰色 silver #c0c0c0 红色 red #ff0000
蓝色 blue #0000ff 紫红色 fuchsia #ff00ff
浅绿色 lime #00ff00 黄色 yellow #ffff00
青色 aqua #00ffff 白色 white #ffffff
文摘自这一年来自己在工作中经历的几个比较好的CSS问题(不一定复杂,但个人觉得都挺值得一说),这些CSS问题平时很少遇到,即使遇到后也不一定知道解决方案,即使知道解决方案也不一定知道产生的原理,同时也准备了2个JS问题,希望帮到各位朋友。期待您的点赞,谢谢。
input标签元素(如button、text 、areatext)的一些事件(如click、focus等),在很多浏览器下默认会有蓝色边框出现,如把一个普通button的background和border都设置为none后,触发点击后样式如下:
这是由元素默认的轮廓线产生的,这是浏览器的一种防护机制,起到突出元素的作用,把它干掉就行了,方法如下:
// 方法1:
outline: none / medium;
// 方法2:
outline-width: 0
我们通常是使用 opacity来做背景的透明化处理,该属性被所有浏览器支持,可以大胆使用,透明度从0.0(完全透明)到1.0(完全不透明),但该方法会使其所有子元素都透明,此时若只想让背景透明,其他不透明,则可以使用rgba处理背景:
background-color: rgba( red , green , blue , alpha )
复制代码
其中这个alpha 即设置透明度,取值在0~1之间。该方法除IE9以下不可用外,其他浏览器均可用,看一下效果:
同理,我们也可以用这个方法把整个背景做透明了,即多写一个div作为modal层做透明处理,可以明显看到上面文字并未透明:
上述种效果代码如下:
// html
<section>
<div class="item-pic">
<header class="header1">
<h4>你会微笑放手,说好不哭让我出新专辑</h4>
</header>
</div>
<div class="item-pic">
<header class="header2">
<h4>你会微笑放手,说好不哭让我出新专辑</h4>
</header>
</div>
<div class="item-pic">
<div class="handle-opacity"> <!-- 透明罩 -->
<header>
<h4>你会微笑放手,说好不哭让我出新专辑</h4>
</header>
</div>
</div>
</section>
<style lang="less">
.header1 {
opacity: .6;
}
.header2 {
background-color: rgba(0, 0, 0, 0.45);
}
.handle-opacity {
position: absolute;
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.45);
header {
background-color: rgba(0, 0, 0, 0.45);
}
}
</style>
我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以关注我的头条号并在后台私信我:前端,即可免费获取。
用一个div包裹一个img,会出现img不能完全覆盖div空间,总会在底边留下一点空隙。
这种现象产生的原因是img是行内元素,浏览器为下行字符(如:g、y、j、p、q)留下的一些空间,这些字符是会比其他字符多占据底部一些空间(具体以当前字体大小有关),这种规则会影响行内元素img标签(其默认垂直对齐方式是依照基线来的,即vertical-align: baseline),同样行内元素都会和外部元素留这么一丢丢安全距离。上图右侧就是加了文字的效果,这样就更说明一切了。
现在我们知道这种现象主要是由于下行字符串保护机制和img是行内元素这两个因素导致的,那解决方案就从这两处入手,整理如下:
综上,个人认为方法3是最好用的,方法1不推荐使用。
该现场多在表单输入等场景上会出现,初次看到确实很怪异,效果如图:
即当浏览器(chrome)给输入框自动填充内容后,也会自动给输入框带上背景(黄或灰蓝),该问题是由于chrome会默认给自动填充的input、select、textarea等加上:-webkit-autofill私有伪属性造成的,比较好的解决方案就是做样式覆盖,代码如下:
input:-webkit-autofill{
box-shadow: 0 0 0px 1000px white inset !important;
}
select:-webkit-autofill{
box-shadow: 0 0 0px 1000px white inset !important;
}
textarea:-webkit-autofill{
box-shadow: 0 0 0px 1000px white inset !important;
}
比较渣的办法是设置禁止自动填充,但还是别那样做了...
transform作为CSS3最为自豪的属性,已经成为了当前前端开发中不可或缺的方法,但它有个渲染的问题,即当元素设置有transform,且其值为基数或小数,同事其整体高度也有基数时,其内部文字会变模糊,如图:
上图上模糊状态下的,下图是修正过的,具体原因经查可能是因为transform变换会在浏览器上单独创建一个绘画层并重新进行渲染,在此渲染过程中也处理了周围的文字,如果高度为奇数的文字可能会存在半个像素的计算量,浏览器对这半个像素会进行优化渲染,所以边缘会出现模糊的情况。解决方案即:
作为CSS常用伪类选择器,:last-child经常会被用到,但有时遇到极端情况,它会意外失效,让人摸不着头脑,例子如下: 3个img标签包裹在card中,当前需求是使最后一张图的边框呈粉色,代码如下:
// html
<div class="card">
<img
v-for="(item,i) in pics"
:key="i"
:src="item"
/>
</div>
// css
<style lang="less">
.card {
> img {
width: 150px;
margin-right: 10px;
&:last-child {
border: 5px solid pink;
}
}
}
</style>
同理用:last-of-type也能实现:
.card {
> img {
width: 150px;
margin-right: 10px;
&:last-of-type {
border: 5px solid pink;
}
}
}
效果如下:
现在要往img后加一个span,发现:last-child已失效:
// html
<div class="card">
<img
v-for="(item,i) in pics"
:key="i"
:src="item"
/>
<span>next is ...</span>
</div>
// css
<style lang="less">
.card {
> img {
width: 150px;
margin-right: 10px;
&:last-child {
border: 5px solid pink;
}
}
}
</style>
而此时:last-of-type依然没问题:
现在得出结论:
可知,:last-of-type更严谨一些,不容易产生意外bug,我更推荐使用它。同理适用于:nth-last-child(n)和:nth-last-of-type(n)
这部分我会叙述一些DOM操作遇到的一些容易被忽视的问题。
经常做H5移动端开发的朋友我想对这个问题肯定不陌生,那就是在部门IOS版本(IOS5及以下)中,对以“-”间隔的字符串时间格式的解析是不成功的,比如我们写了这么一个鸡肋时间格式适配器:
function DateFormat(date) {
if(!date) return null;
date=new Date(date);
let Y=date.getFullYear();
let M=(date.getMonth() >=0 && date.getMonth() <=8) ? `0${date.getMonth() + 1}` : `${date.getMonth() + 1}`;
let D=(date.getDate() >=0 && date.getDate() <=9) ? `0${date.getDate()}`: `${date.getDate()}`;
return `Y-M-D`
}
此时如果在IOS5及以下版本的iphone下,传入 "2019-12-31"就会呈现出 NaN-NaN-NaN,而其他IOS版本及安卓系统都是没问题的。
针对上述问题,要做兼容适配,即把以"-"间隔的事件字符串替换成以"/"即可,同样是这个适配器,添加一段代码:
function DateFormat(date) {
if(!date) return null;
if(typeof date==='string' && date.indexOf('T')!=-1 && date.indexOf('+')!=-1) {
date=date.replace(/-/g, '/').replace('T',' ').substring(0,date.indexOf('.'))
}
date=new Date(date);
let Y=date.getFullYear();
let M=(date.getMonth() >=0 && date.getMonth() <=8) ? `0${date.getMonth() + 1}` : `${date.getMonth() + 1}`;
let D=(date.getDate() >=0 && date.getDate() <=9) ? `0${date.getDate()}`: `${date.getDate()}`;
return `Y-M-D`
}
这个真的很诡异的问题,当在一个表单中执行了ENTER键提交后,如果是打开新页面显示提交结果,则会发现当前表单页面也跟着刷新了,这种体验当然是很糟糕的。经查证,该问题的产生条件为:Form中只有一个input时,此时执行ENTER键会自动提交表单并刷新页面。解决方案也很粗暴,直接在input输入框附近写一个隐藏标签,这样就有2个input了,即避免了产生默认刷新的bug,实例如下:
<form>
<input
type="text"
v-model.trim="searchText"
placeholder="搜索您感兴趣的内容"
@keyup.enter="goSearch"
/>
<input
id="hidden"
type="text"
style="display:none"
@keyup.enter="goSearch"
/>
</form>
如有不同见解和问题,请留言指出,期待您的点赞。最后祝您2020好运连连。
作者:_呜啦啦啦火车笛
链接:https://juejin.im/post/5e0abd926fb9a04825712e3f
文丨王塞北
马丁·斯科塞斯
(Martin Scorsese)
的《爱尔兰人》
(The Irishman)
,如同《教父》系列和《赌城风云》一样,用超长的观影时间把观众带入几十年的岁月流转而浑然不知。故事讲述了主人公弗兰克·希兰
(Frank Sheeran)
与黑帮组织、工会之间错综复杂、扑朔迷离的史诗故事。罗伯特·德尼罗
(Robert De Niro)
饰演的希兰是工会官员和黑帮分子,其故事与劳工运动组织者吉米·霍法
(Jimmy Hoffa)
、黑手党大佬和肯尼迪家族相互交织。
这部电影是斯科塞斯第一部独家在Netflix上播放的电影,改编自作家查尔斯·布兰德
(Charles Brandt)
2004年为弗兰克·希兰所作的传记《我听说你刷房子》。在书中,希兰声称自己杀死了霍法等人,电影中也呈现了这一场景,但是,经历过这件案子的司法官员、历史学者,都对此予以否认。马丁·斯科塞斯本人则说:“真相没有那么重要。”
吉米·霍法真是如猫王一般的存在吗?
英雄不问出处,但英雄总有来路。詹姆斯·瑞德尔·霍法
(James Riddle Hoffa)
1913年生于印第安纳州巴西城一个普通工人之家。14岁父亲去世,全家搬迁至底特律,霍法开始辍学打工。那时,他就组织杂货店的同事们来挑战经理们的不公平待遇,并要求更高的工资。1932年,他加入全美货车司机兄弟会,并于1957年当选为工会主席,当时工会代表了将近100万卡车司机和仓库工人,在最高峰时会员数有230万。
在《爱尔兰人》中,希兰的画外音断言:霍法在二十世纪五六十年代比猫王和甲壳虫乐队更出名。这并不是夸大其词,在近三分之一的美国工人参加工会时,霍法本人就是工会运动的象征。当时,《纽约时报》称他所领导的工会是全国最大的一支政治力量。
1975年7月30日,霍法参加在当地一家餐馆举行的午餐会,第二天早上他还没有回到家,他的妻子约瑟芬
(Josephine)
报警,霍法从此不见踪影,于1982年被宣布法定死亡。虽然有人认为,他被黑手党同伙谋杀;其他人则认为,凶手可能是工会的竞争对手,也有人试图查明是否霍法担心自己的生命安全后,自行消失了。
“教父”阿尔·帕西诺饰演美国工会运动传奇人物吉米·霍法。
其中,民众最倾向于认为凶手是黑手党。正如电影所呈现的那样,罗素不动声色地安排好一切,让希兰去执行。在20世纪中叶,随着货车司机兄弟会人数的增加,全美货车司机兄弟会的退休基金规模不断扩大。黑手党们也不断渗透,将这笔庞大的基金当做投资,用于资助拉斯韦加斯赌场的建设
(在马丁·斯科塞斯的《赌场》中,可以更详细地了解其中的运作)
。
作为回报,黑手党将确保工会赢得其控制区域的大宗运输和仓储业务,以保持资金流量的稳定。他们还介入工会组织内部以协助解决选举问题,并且确保政府和议会中的关键职位由对工会友善的候选人担任
(当然,同时也和黑手党友善)
。霍法虽然也愿意和黑手党合作,但他在基金的借出上十分谨慎,要审慎地评估风险,导致一些黑手党逐渐对其不满。
弗兰克·希兰并不是司法人员的怀疑对象
联邦调查局、工会和黑手党研究领域的的许多历史学家,对弗兰克·希兰杀死霍法或1972年在曼哈顿小意大利
(Little Italy)
杀死臭名昭著的疯狂乔·加洛
(Crazy Joe Gallo)
的故事嗤之以鼻。他们详尽地论证了“希兰凶手论”仅仅是个幻想。《纽约时报》专栏作家比尔·托内利
(Bill Tonelli)
在《灰蓝》杂志
(SLATE)
撰文称:“与我交谈过的没有一个人知道费城的希兰,而且我采访过警察、罪犯、检察官和记者。在他们列举的所有嫌疑人中,都没有这个名字。”
罗伯特·德尼罗饰演弗兰克·希兰,他在《教父》第二部中饰演年轻的初代教父托维·柯里昂,但与阿尔·帕西诺饰演的二代教父迈克尔·柯里昂并未有对手戏,《爱尔兰人》让广大“《教父》迷”得以一偿夙愿。
爱尔兰天主教徒、二战老兵弗兰克·希兰是个卡车司机,他一开始为布法利诺和更高级别的安杰洛·布鲁诺
(Angelo Bruno)
黑手党人做些小工作。作为非意大利人,他没有资格获得黑手党的正式会员资格
(Cosa Nostra)
,但他被布法利诺视为值得信赖的同事和朋友。2003年去世的希兰在《我听说你刷房子》中声称:他通过布法利诺成为了霍法的得力助手,他的任务是保护霍法的旅途安全,必要的时候执行暗杀任务。
罗素·布法利诺在黑手党中的地位
罗素·布法利诺于1902年生于西西里岛,幼时移民到美国。他的家人定居在纽约州的布法罗,到1960年代中期,布法利诺成为美国最重要的黑手党人物之一。他的黑手党组织控制着宾夕法尼亚州的一些煤炭、钢铁工人社区,以及电影中出现的整条的高速公路,这些项目都和货车司机兄弟会有着紧密业务。
马丁·斯科塞斯的老搭档,乔·佩西饰演黑手党大佬罗素·布法利诺。
布法利诺虽然从未像卡洛·甘比诺
(Carlo Gambino)
或乔·波纳诺
(Joe Bonano)
等臭名昭著的黑手头子那样常常出现在报纸上,但他仍然是上世纪中叶美国黑手党的核心人物。据报道,在1970年代初,他是著名的黑手党组织热那亚家族的临时负责人。早在1964年,布法利诺就受到执法部门的关注,参议院有组织犯罪小组委员会称他为“美国黑手党最残酷、最有影响力的领导人之一”。1978年,他因敲诈勒索罪被判入联邦监狱四年,后来他的一名杀手反水为司法部提供情报,罗素被增加了十年刑期。布法利诺和希兰一直保持密切关系,直到前者在1989年从监狱中获释,而希兰在1970年代后期因敲诈而被定罪后,继续担任布法利诺的保镖。
肯尼迪家族是如何参与这个故事中的?
对美国民众而言,他们对约翰·肯尼迪与黑手党关系的好奇度,可能仅次于他与玛丽莲·梦露的关系。尽管几乎没有直接的证据将肯尼迪族长约瑟夫·P·肯尼迪
(S. P. Kennedy,Sr.)
与禁酒令和黑手党联系起来,但他确实是华尔街的精明投资者,后来又成为好莱坞大佬。老肯尼迪曾多次担任证券交易委员会主席和美国驻英国大使,并利用这一政治资本来帮助儿子们的事业。《纽约时报》记者西摩·赫什
(Seymour Hersh)
声称,肯尼迪还利用他在芝加哥黑手党的影响力,确保肯尼迪在1960年总统大选中战胜理查德·尼克松。
劳工领袖吉米·霍法和司法部长罗伯特·肯尼迪在交谈。
罗伯特·肯尼迪
(Robert Kennedy)
在1961年被哥哥约翰·肯尼迪总统
(John Fitzgerald Kennedy)
任命为司法部长后,将吉米·霍法送入监狱成了他的一大志愿。最终,霍法被指控受贿、欺诈和最关键的滥用养老金罪名被告上法庭。霍法最终在1964年被判犯有欺诈和贿赂罪,被判处联邦监狱13年徒刑,尽管他由于理查德·尼克松
(Richard Nixon)
总统的五次减刑而获得脱身,但根据各方力量的约定,他不得再谋求工会主席的职位。
霍法从监狱获释后,仍然受到许多兄弟会司机的喜爱,他试图重回工会领袖的地位。这是大多数人认为他犯错的地方。黑手党中的许多人认为,霍法对权力的渴望,使他成为不可靠的伙伴。对他失踪的调查清楚表明,霍法的结局就像古希腊悲剧:不论命运如何,人都应归因于自己的命运。
马丁·斯科塞斯:谁杀死了霍法,在电影里并不重要
在霍法失踪案的传说中,经常有另一个名字出现——霍菲·奥布莱恩(
Choffie O'Brien)
,霍法的长期朋友和助手。2004年,FBI将霍法的DNA与在奥布莱恩车上发现的发刷相匹配,但是奥布莱恩的继子律师杰克·高史密斯
(Jack Goldsmith)
坚决否认奥布莱恩的介入。大多数执法人员都认为,无论是谁杀死了霍法,斯科塞斯在《爱尔兰人》中提供的信息离真相都遥不可及。电影中,霍法在底特律一个房间里,一进门就被希兰从后面射杀,其遗体在晚上被悄悄火化。
在其他的版本中,有人坚称:霍法的尸体被扔进了一个工业碎纸机粉碎,这是一个黑手党拥有的垃圾处理设施,后来被烧毁了;他被杀了,埋在一个养马场;他被塞进桶里压实后,被送往日本,成为日产汽车的一部分;他的遗体被运到新泽西,这样他就可以长眠在巨人球场下面的混凝土中;他从五大湖上空的飞机上被抛出;他被丢弃在佛罗里达大沼泽地,并被短吻鳄吃掉。也有人认为,他实际上还活着,被黑手党关押在某个地方,就像有人相信猫王还活着那样。当然,联邦检察官和情报人员对这些说法通通予以否认。
今年10月,罗伯特·德尼罗、马丁·斯科塞斯和阿尔·帕西诺在伦敦电影节。
然而,对于马丁·斯科塞斯而言,究竟真相如何,并没有那么重要,这也不是他在电影中想重点讲述的:“就像如果我们真正知道了肯尼迪遇刺案的真相,又能怎么样呢?能改变什么事实吗?只是为我们提供了几篇好报道,几部电影以及人们在宴会上聊天的话题而已。关键是,电影与事实无关——人物的所作所为都来源于他扮演的角色,当角色处于某种情况下,他必须以某种方式行事,即使意识到自己可能犯了一个错误。”他在接受《娱乐周刊》
(Entertainment Weekly)
采访时如是说。
编译参考:
https://www.smithsonianmag.com/history/truth-behind-martin-scorseses-irishman-180973620/
https://www.vox.com/culture/2019/9/27/20887589/irishman-review-netflix-scorsese-deniro-pacino
https://ew.com/movies/2019/10/24/martin-scorsese-irishman-interview/
https://slate.com/culture/2019/08/the-irishman-scorsese-netflix-movie-true-story-lies.html
作者丨王塞北
编辑丨李阳
校对丨薛京宁
*请认真填写需求信息,我们会在24小时内与您取得联系。