接標簽
定義:從一個網頁指向另一個網頁的目的地,
有四種類型:
(1)鏈接覆蓋原有的鏈接
(2)新開一個窗口
(3)圖片鏈接
(4)死鏈接
html:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>鏈接標簽</title>
</head>
<body>
<a href="https://www.baidu.com/"><font color="blue">百度</font></a>
<a href="https://www.jd.com/" target="_blank"><font color="blue">京東</font></a>
<a href="https://www.hao123.com/" target="_blank"><img src="../img/男孩子.png"/></a>
<a href="#" target="_blank">死鏈接</a>
</body>
</html>
于很多剛從Java學習過渡到JavaScript學習的同學來說在定義方法的問題上最頭疼,我們Java人員來學習JavaScript是非常容易上手的,因為語法大部分都相同。但是定義方法是個例外,JavaScript中沒有方法重載的概念,匹配方法只去比較方法名,這跟Java大相徑庭。今天我們來剖析一下這個問題, 既然JavaScript中沒有重載的概念,那么我們定義兩個方法名相同的方法,會出現什么問題呢?
<script >
function calc(a , b){
alert(a + b);
}
calc(1,2);
function calc() {
alert("空參方法");
}
calc();
</script>
這里一執行會彈出兩個空參方法,而不是一個3和一個空參方法。
這是因為在JavaScript中如果定義的方法名相同,下面的會將上面的覆蓋掉。
以上是具名方法聲明的方法,我們如果用具名和匿名方法分別聲明相同的方法名的方法會是一種什么樣的情況呢?
<script >
function calc(a , b){
alert(a + b);
}
calc(1,2);
var calc = function(){
alert("空參方法");
}
calc();
</script>
出乎我們意料,竟然彈了個3又彈了個空參方法,好像互相不影響。
那請看下面這種情況:
<script >
function calc(a , b){
alert(a + b);
}
calc(1,2);
var calc = function(){
alert("空參方法");
}
calc();
function calc(a , b){
alert(a - b);
}
calc(1,2);
</script>
為什么會是這樣一個順序呢?第三個方法會將第一個方法覆蓋掉,這個現象大家能理解。 但為什么第二個方法會將第三個方法覆蓋掉呢?
是因為匿名方式聲明的方法。只有在調用的時候才真正的被加載上。而具名方法在加載之前就會將相同的方法覆蓋掉。所以在加載之前第三個方法會將第一個方法覆蓋掉。所以先彈出了一個"-1"/接著執行到了匿名方法。也就是第二個方法。這時候這個方法才加載到內存中。所以會將已經加載好的第三個方法覆蓋掉。
推薦學習視頻:JavaScript教程_JavaScript視頻教程|黑馬程序員
SS樣式覆蓋規則
很多情況都會導致一個元素被運用上多種樣式,樣式覆蓋的規則也需要根據不同的情況來定,具體規則如下。規則一:由于繼承而發生樣式沖突時,最近祖先獲勝。CSS的繼承機制使得元素可以從包含它的祖先元素中繼承樣式,考慮下面這種情況:
<html>
<head>
<title>rule1</title>
<style>
body {color:black;} p {color:blue;}
</style>
</head>
<body>
<p>welcome to <strong>加粗</strong></p>
</body>
</html>strong分別從body和p中繼承了color屬性,但是由于p在繼承樹上離strong更近,因此strong中的文字最終繼承p的藍色。
規則二:繼承的樣式和直接指定的樣式沖突時,直接指定的樣式獲勝。在上面的例子中,假如還指定了strong元素的樣式,如:
strong {color:red;}那么根據規則二,strong中的文字最終顯示為紅色。
規則三:直接指定的樣式發生沖突時,樣式權值高者獲勝。樣式的權值取決于樣式的選擇器,權值定義如下表。CSS選擇器 權值標簽選擇器 1偽元素(:first-child等) 1類選擇器 10ID選擇器 100內聯樣式 1000偽類(:link等) 10可以看到,內聯樣式的權值>>ID選擇器>>類選擇器>>標簽選擇器,除此以外,后代選擇器的權值為每項權值之和,比如"#nav .current a"的權值為100 + 10 + 1 = 111。
規則四:樣式權值相同時,后者獲勝。考慮下面這種情況
<p class="byline">Written by <a class="email" href="mailto:jean@cosmofarmer.com">Jean Graine de Pomme</a></p> .byline a {color:red;} p .email {color:blue;}".byline a"與"p .email"都直接指定了上面的a元素,且權值都為11,根據規則四,最終顯示藍色。由于樣式表可以是外部的,也可以是內部的,規則四提醒我們要注意外部樣式表引入的順序(及<link>元素的順序),以及外部樣式表與內部樣式表的出現位置。一般來說,內部樣式表出現在所有外部樣式表的引入之后,一般是在</head>之前。
規則五:!important的樣式屬性不被覆蓋。!important可以看做是萬不得已的時候,打破上述四個規則的"金手指"。如果你一定要采用某個樣式屬性,而不讓它被覆蓋的,可以在屬性值后加上!important,以規則四的例子為例,
.byline a {color:red !important;}
可以強行使鏈接顯示紅色。大多數情況下都可以通過其他方式來控制樣式的覆蓋,不能濫用!important。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。