整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

计算机十六进制与颜色

计算机十六进制与颜色

色的属性值:不区分大小写(包括在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问题,希望帮到各位朋友。期待您的点赞,谢谢。

一、CSS篇

1.1 元素默认蓝色边框

input标签元素(如button、text 、areatext)的一些事件(如click、focus等),在很多浏览器下默认会有蓝色边框出现,如把一个普通button的background和border都设置为none后,触发点击后样式如下:



这是由元素默认的轮廓线产生的,这是浏览器的一种防护机制,起到突出元素的作用,把它干掉就行了,方法如下:

// 方法1:
outline: none / medium;

// 方法2:
outline-width: 0

1.2 背景透明,文字不透明

我们通常是使用 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前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以关注我的头条号并在后台私信我:前端,即可免费获取。

1.3 div内置img元素,底部总有间距

用一个div包裹一个img,会出现img不能完全覆盖div空间,总会在底边留下一点空隙。



这种现象产生的原因是img是行内元素,浏览器为下行字符(如:g、y、j、p、q)留下的一些空间,这些字符是会比其他字符多占据底部一些空间(具体以当前字体大小有关),这种规则会影响行内元素img标签(其默认垂直对齐方式是依照基线来的,即vertical-align: baseline),同样行内元素都会和外部元素留这么一丢丢安全距离。上图右侧就是加了文字的效果,这样就更说明一切了。

现在我们知道这种现象主要是由于下行字符串保护机制和img是行内元素这两个因素导致的,那解决方案就从这两处入手,整理如下:

  1. div设置font-size: 0或line-height: 0,进而行高为0;
  2. img设置 vertical-align: top 或者 middle/,使其不再以默认基线为对齐方式;
  3. img设置 display:block,使其变成块级元素。

综上,个人认为方法3是最好用的,方法1不推荐使用。

1.4 元素自动填充上背景色

该现场多在表单输入等场景上会出现,初次看到确实很怪异,效果如图:



即当浏览器(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;
} 

比较渣的办法是设置禁止自动填充,但还是别那样做了...

1.5 transform 基数值导致字体模糊

transform作为CSS3最为自豪的属性,已经成为了当前前端开发中不可或缺的方法,但它有个渲染的问题,即当元素设置有transform,且其值为基数或小数,同事其整体高度也有基数时,其内部文字会变模糊,如图:



上图上模糊状态下的,下图是修正过的,具体原因经查可能是因为transform变换会在浏览器上单独创建一个绘画层并重新进行渲染,在此渲染过程中也处理了周围的文字,如果高度为奇数的文字可能会存在半个像素的计算量,浏览器对这半个像素会进行优化渲染,所以边缘会出现模糊的情况。解决方案即:

  1. 不要给transform属性值设置奇数和小数值;
  2. 调整整体元素高度不要为基数。

1.6 :last-child 和 :last-of-type

作为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依然没问题:



现在得出结论:

  1. :last-child选取一群兄弟元素中的最后一个元素,且最后的这个元素必须是所声明的指定元素(注意2个条件);
  2. :last-of-type选取一群兄弟元素中的最后一个指定类型的元素。

可知,:last-of-type更严谨一些,不容易产生意外bug,我更推荐使用它。同理适用于:nth-last-child(n)和:nth-last-of-type(n)

二、DOM篇

这部分我会叙述一些DOM操作遇到的一些容易被忽视的问题。

2.1 IOS日期显示问题

经常做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`
}

2.2 ENTER键使当前页刷新

这个真的很诡异的问题,当在一个表单中执行了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

作者丨王塞北

编辑丨李阳

校对丨薛京宁