色的屬性值:不區分大小寫(包括在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小時內與您取得聯系。