Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
是否曾經試著點擊或點擊一個元素(例如:按鈕、鏈接),并且注意到只有單擊該元素的特定區域,它才會響應?
必生這種情況是因為可點擊區域未應用于整個元素。為了更加清楚,請參見下圖,左圖可點擊區別(圈紅部分)明顯比右圖的小很多,所以右圖的實現用戶體驗會更好。
對于本文,會介紹一些事例,并通過事例演示如何增加可點擊區別,提高用戶體驗。
WCAG全稱Web Content Accessibility Guidelines 網頁內容無障礙瀏覽準則,簡單的說就是為了方便殘障人士(包括低視患者,盲人,聾人,學習障礙,行動不便,認知障礙....)訪問Web內容而制定的相關標準,可以使網站更加人性化。
舉個例子,在WCAG準則2.3.2中規定:網頁不包含任何閃光超過3次/秒的內容。
用戶應該能夠使用臺式機/筆記本電腦上的鍵盤以及移動設備或平板電腦上的觸摸屏來操作輸入。不要在移動設備屏幕上將按鈕設置得太小,以免按下正確的按鈕。觸摸目標的最小尺寸最好至少為44 x 44像素。
**費茲法則(Fitts law)**是一個人機互動以及人體工程學中人類活動的模型;它預測了快速移動到目標區域所需的時間是目標區域的距離和目標區域大小的函數。
在下面的圖中,我模擬了兩個按鈕的不同情況。在左側,按鈕更小,更遠,用戶需要更多的時間與它互動。在右側,按鈕大小更大,更接近于它的同級輸入元素,這將使交互更容易、更快。
接著,我們再來看看一些更加真實例子。注意:記住WCAG準則 和費茲法則 的概念。
在需要時使用實際真實<button>(包含可點擊區域)非常重要。下面的示例來自我使用的在線銀行系統:
<div class="navig next" onclick="validateLogin()">Next</div>
這是上面按鈕的HTML的GIF圖像。我把鼠標懸停在按鈕上,光標仍然是一個指針,這很好。不過,我也可以選擇文本和懸停時,有一個文本光標!如果使用了正確的元素,就不會發生這種情況。
當使用HTML<button>元素時,會獲得下面效果:
有些元素,我們需要添加 padding,原因有二:
之前在做導航的時候,犯了一個錯誤,應該是給 a 標簽添加 padding 而不是 li:
<nav>
<ul>
<li class="nav-item"><a href="#">Home</a></li>
<li class="nav-item"><nav href="#">Products</nav></li>
<li class="nav-item"><a href="#">Store</a></li>
<li class="nav-item"><a href="#">Team</a></li>
</ul>
</nav>
// css
.nav-item {
padding: 12px 16px;
}
基于上面的HTML和CSS,可點擊的區域將只是文本,如下圖所示:
正確的方法是在a 標簽本身上添加padding。請注意,默認情況下,padding 需要塊元素才有效,而 a 標簽是行內元素,所以可以給 a 標簽設置block,inline-element或 flex。
.nav-item a {
display: block;
padding: 12px 16px;
}
添加了上面的樣式后,可點擊的效果如下:
假設可點擊區域如下所示:
這種體驗不是很好,鼠標或手指指向屏幕上如此小的目標會比較難。在下圖中,它的可點擊區域更大并且更易于交互。
事例源碼:https://codepen.io/shadeed/pen/PMygee
當存在復選框或單選按鈕元素時,我希望可以單擊它或關聯的標簽來激活/禁用它。
從用戶體驗的角度來看,這是難以訪問和糟糕的。在 HTML 中,可以使用for屬性將標簽與輸入框綁定在一起。
<input type="checkbox" id="option1">
<label for="option1">Option 1</label>
或者可以將輸入框放置在標簽內:
<label for="option1">
Option 1
<input type="checkbox" id="option1">
</label>
然后,在<label>元素上添加padding,以使可點擊區域變大。這樣,問題得以解決,整個復選框或單選按鈕都是可單擊的,如下圖所
對于帶有類別的頁面,有時我會注意到列表鏈接沒有擴展到其父頁面的整個寬度。也就是說,可點擊區域僅在文本上,如下圖所示:
解決方法:
.nav-item a {
/*Other styles*/
padding: 12px 16px;
display: block;
}
添加后,如下所示:
在最近的Twitter更新中,導航設計在可點擊區域大小方面存在問題。最初,它僅與文本相關,如下面的屏幕截圖所示,但他們在收到反饋后將其修復。
在某些情況下,需要在章節標題的遠端添加“查看更多”按鈕或箭頭。在下面的示例中,我將箭頭放置在假圓中,以便可以正確地使箭頭居中。
通常情況下,箭頭周圍的間距可以使用padding或width和height。
僅通過改變元素的寬度和高度或使用padding,并不總是能夠使可點擊區域變大,這時候就需要偽元素救場了。
這個想法是,偽元素屬于其父元素,因此當我們創建具有特定寬度和高度的偽元素時,它將充當其父元素的單擊/觸摸/懸停區域。
在下圖中,我在菜單按鈕中添加了:after偽元素:
.menu-2:after {
content: "";
position: absolute;
left: 55px;
top: 0;
width: 50px;
height: 50px;
background: #e83474;
/*Other styles*/
}
事例源碼:https://codepen.io/shadeed/pen/BXXjEg?editors=0100
作者:Ahmad Shadded 譯者:前端小智 來源:css-tricks
原文:https://css-tricks.com/enhancing-the-clickable-area-size/
SS偽元素主要是指HTML中沒有定義、存在的元素,偽元素本身不是真正的頁面元素,但是偽元素在使用過程中,其用法與效果與其他真正頁面元素是一樣的。偽元素只能在定義基礎上動態顯示其運行效果,在HTML源文件中并沒有該元素的真正代碼。CSS3中所定義的所有偽元素與偽類描述如下圖所示:
CSS偽元素與偽類
ripple波紋
按鈕的波紋效果主要是指按鈕在點擊時展示出的動態效果。在實現效果過程中可行的方法方式較多,例如可以使用JavaScript、CSS動畫、JQuery等。網上目前按鈕波紋實現效果較多,部分樣式效果展示如下:
波紋效果展示
CSS偽類波紋效果主要借助于before、after偽類與hover懸停選擇器等實現類似波紋效果,本文主要借助after及hover等實現按鈕的波紋效果,本例設計兩種類似波紋效果,最終實現效果展示如下圖所示:
設計樣式1
設計樣式2
本文設計實現的兩類波紋效果樣式描述如上圖gif所示,其實現過程描述如下:
1、按鈕基本樣式設計
本例按鈕基本樣式主要包括寬度、高度、背景顏色等。使用元素選擇器與類選擇器定義了按鈕元素的基本樣式,其樣式實現代碼描述如下:
button,.button2,.button{width: 200px; height: 50px; background-color: green;border: 0; cursor: pointer;color: #FFF; font-size: 16px; position: relative;}
.button類主要用以實現設計樣式1,.button2類主要用于實現設計效果2,兩類按鈕定義描述如下:
<button type="button" class="button">Ripple1</button> <button type="button" class="button2">Ripple2</button>
2、after偽元素使用
after偽元素主要用于實現在指定元素的后面添加新的內容。本例提供的兩種設計方式都是在button元素的后面添加新的類似div的新元素,其中樣式1,新添加的元素與button本身重合,尺寸也一致。設計樣式2中after元素位于button的底部位置,寬度與button相同,高度為指定尺寸5px。兩個設計中after元素樣式為實現動態展開效果都涉及寬度width為0。after元素的樣式定義如下:
.button::after{content: " "; width: 0; height: 50px; position: absolute; left:50%;top: 0%;background-color: red;opacity: 0; transition: all .4s; } .button2::after{content: " "; width: 0; height: 5px; position: absolute; left:50%;top: 100%;background-color: red;transition: all .4s; }
after元素CSS樣式定義中使用了transition屬性實現動畫效果,即在0.4s內實現寬度從0改變為100%。
3、hover選擇器的使用
hover選擇器為懸停選擇器,主要對鼠標在HTML元素懸停時樣式進行設置。本例兩個涉及效果都是借助hover懸停選擇器對after樣式進行設置,在初始化設置寬度為0的基礎上寬度改變為100%,最終實現兩端伸展的效果。hover選擇器定義after元素樣式描述如下所示:
.button:hover::after{left:0%; width: 100%; opacity: 0.6;} .button2:hover::after{left:0%; width: 100%;}
以上給出了CSS偽元素實現波紋效果,主要借助了after、before偽元素與hover懸停選擇器等。設計實現效果完整源文件截圖如下:
案例完整代碼
以上給出了JavaScript中的事件基本概念及案例分析,如有問題可在評論區討論。本頭條號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可以聯系作者,共同探討。期待大家關注!相關文章鏈接如下:
前端開發-JavaScript中的事件(Event)及事件處理總結
前端開發-CSS3動畫實現焦點(圖文輪播)圖效果
前端開發-JavaScript DOM動態生成文本框
前端設計-教你如何快速繪制HTML5動畫
前端設計-響應式頁面開發基礎
前端設計-Ajax技術及實例展示
文介紹了網頁編程中的按鈕使用方法。按鈕是網頁中最常用的控件之一,點擊后會觸發某些程序。即使沒有學習過編程,大家也應該知道按鈕的概念。按鈕的最大功能是點擊后觸發程序。這篇文章主要介紹了如何在網頁中插入按鈕,并講解了按鈕的屬性和使用方法。
先來看看今天的實例效果。頁面被分為三部分:按鈕、按鈕和按鈕的共有屬性。
首先是普通按鈕,點擊后文本框的內容發生了變化,但頁面并沒有刷新。接著是重置按鈕,點擊后文本框的內容恢復到初始狀態,但頁面仍然沒有刷新。提交按鈕點擊后,頁面重新加載,提交了表單中的內容。
接著是按鈕,點擊后文本框的內容發生了變化,但頁面沒有刷新。按鈕包含一個圖片且為灰色狀態,無法點擊。
現在來看看實現的代碼。
輸入和按鈕的寫法非常相似,這里只展示了最基本的寫法。對于初學者來說,看一眼就明白了。
按鈕有三個類型:普通、重置和提交。按鈕的名稱和值會提交到服務器端。
提交時提交的是按鈕的值。ID和name是控制按鈕的命名。
點擊按鈕時會觸發onclick事件。autofocus屬性會在頁面加載完成后自動獲取焦點。
disabled屬性可以設置按鈕是否可用,不設置時默認可用。
form屬性用于設置提交到哪個URL、是否繞過驗證、以及表單的相關設置。
相關屬性的優先級高于在表單中設置的屬性。
以上就是今天的分享內容,希望對大家有所幫助。import和button在網頁中插入按鈕的功能是相同的,兩者的外觀也沒有明顯的區別,但是它們的屬性設置卻存在一定的重疊。
為什么需要這兩個標簽呢?而阿里巴巴標簽是HTML 5中新增加的標簽,它的必要性體現在哪里呢?同學們要注意,阿里巴巴標簽不是input,它不是一個封閉的標簽,而是一個唯一的標簽,可以包含文字或其他標簽。
例如,可以使用阿里巴巴標簽來插入圖片。注意,由于用戶使用的瀏覽器不同,底層的type值是必須填寫的,絕對不能使用默認值。
今天的分享就到這里,希望各位同學能夠認真練習,做到不看視頻也能夠正確地寫出代碼。所有的案例和相關文檔都可以向我索取,下期再見,想學編程就關注我吧。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。