CSS【詳解】邊框 border,邊框-圓角 border-radius,邊框-填充 border-image,輪廓 outline

邊框 border

border 是以下三種邊框樣式的簡寫:

  • border-width 邊框寬度 —— 數值 px(像素),thin(細),medium(中等),thick(粗)
  • border-style 邊框線型 —— none【默認值】,dashed(橫線),dotted(點),solid(實線),double(雙實線,當邊框>=3px才有效果)
  • border-color 邊框顏色 —— 顏色值,默認顏色是color色值

語法為

border:邊框寬度 邊框線型 邊框顏色
  • 三種樣式的順序沒有要求,用空格分開即可。
  • 會同時設置上、下、左、右邊框的樣式

范例
在這里插入圖片描述

<template><div class="box"></div>
</template>
<style scoped>
.box {border: 1px solid red;height: 60px;width: 60px;
}
</style>

分開設置邊框樣式

  • border-top 上邊框
  • border-right 右邊框
  • border-bottom 下邊框
  • border-left 左邊框

樣式值的語法和 border 相同

在這里插入圖片描述

<template><div class="box"></div>
</template>
<style scoped>
.box {border: 1px solid red;border-right: 2px solid blue;height: 60px;width: 60px;
}
</style>

清除邊框

將樣式值設置為 none0 即可

邊框-圓角 border-radius

值可以為長度單位 px 等,或用 % ,值為 50% 時矩形會變為橢圓,正方形會變為圓形!

邊框的每個角,本質上是一個圓,圓的水平半徑和垂直半徑相等時,就是圓;如果二者不等, 就是橢圓。

四個角的半徑都相同時:

border-radius:10px;

/區分水平半徑和垂直半徑

border-radius: 30px / 60px;

斜杠前后都支持1~4個長度值。

/* 左上 右上+左下 右下 / 左上 右上+左下 右下 */
border-radius: 10px 5px 2em / 20px 25px 30%;
/* 左上+右下 右上+左下 / 左上 右上 右下 左下 */
border-radius: 10px 5% / 20px 25em 30px 35em;

分別定義各個角:(用空格區分水平半徑和垂直半徑)

border-top-left-radius: 60px 120px;        //左上角
border-top-right-radius: 60px 120px;       //右上角
border-bottom-left-radius: 60px 120px;     //左下角
border-bottom-right-radius: 60px 120px;    //右下角

復合寫法:

border-radius: 60px/120px;             //參數:水平半徑/垂直半徑
border-radius: 20px 60px 100px 140px;  //從左上開始,順時針賦值。如果當前角沒有值,取對角的值
border-radius: 10px 50% 30px; // 第一個值作用于左上角,第二個值作用于右上角和左下角,第三個值作用于右下角
border-radius: 20px 60px;

border-radius 屬性的其他特征

  • 不支持負值
  • 圓角以外的區域不可點擊,無法響應click事件。
  • 沒有繼承性,父元素設置了border-radius,子元素依然是直角效果。可以通過給父元素設置overflow:hidden讓子元素視覺上表現為圓角。
  • 可以應用于display的計算值為table、inline-table或者table-cell的元素上的,但是有一個前提,那就是表格元素的border-collapse屬性值需要是separate(separate是border-collapse屬性的默認值),如果border-collapse屬性值是collapse,那么是沒有圓角效果的。

重疊曲線的渲染機制

https://blog.csdn.net/weixin_41192489/article/details/120463380

當 border-radius 遇上有厚度的 border

https://blog.csdn.net/weixin_41192489/article/details/120463590

【實戰】不規則的圓角頭像

https://demo.cssworld.cn/new/4/2-1.php

https://demo.cssworld.cn/new/4/2-2.php

https://www.zhangxinxu.com/study/201702/cicada-principle-border-radius.html

【實戰】繪制角標、對話框的小尾巴

https://demo.cssworld.cn/new/4/2-3.php

邊框-填充 border-image

  • border屬性不能寫在border-image屬性的下方,否則border-image會失效,因為border屬性的縮寫中包含了border-
    image相關屬性的信息。

  • 若自定義邊框圖片,因圖片渲染規則與現實設計不符,很少使用,簡單了解即可。

    border-image: url("images/border.png") 27/20px round;
    

單獨設置邊框圖片的屬性

/* 邊框圖片的路徑*/
border-image-source: url("images/border.png");/* 圖片邊框的裁剪*/
border-image-slice: 27;/*圖片邊框的寬度*/
border-image-width: 27px;/*邊框圖片的平鋪*/
/* repeat :正常平鋪 但是可能會顯示不完整*/
/*round: 平鋪 但是保證 圖片完整*/
/*stretch: 拉伸顯示*/
border-image-repeat: stretch;

【實戰】漸變邊框

在這里插入圖片描述

<template><p class="border-linear-gradient">上下漸變邊框</p><p class="border-radial-gradient">徑向漸變邊框</p>
</template>
<style scoped>
.border-linear-gradient {border: 10px solid;border-image: linear-gradient(deepskyblue, deeppink) 20 / 10px;
}
.border-radial-gradient {border: 10px solid;border-style: solid;border-image: radial-gradient(deepskyblue, deeppink) 20 / 10px;
}
</style>

【實戰】圓角漸變邊框

border-radius屬性無法改變 border-image 屬性生成的圖形效果,所以需要使用其他的方法。

在這里插入圖片描述

方法一:使用clip-path

.clip-path {clip-path: inset(0 round 10px);
}

方法二:外層嵌套一層div元素,然后設置圓角和溢出隱藏

.father {border-radius: 10px;overflow: hidden;
}

【實戰】紅色條紋邊框

在這里插入圖片描述

<template><div class="border-stripe">用紅色條紋邊框表示警示</div>
</template>
<style scoped>
.border-stripe {border: 12px solid;border-image: repeating-linear-gradient(-45deg, red, red 5px, transparent 5px, transparent 10px)12;
}
</style>

【實戰】模擬自定義的虛線

在這里插入圖片描述

<template><div class="border-dashed">1:1的虛線</div>
</template>
<style scoped>
.border-dashed {border: 1px dashed deepskyblue;border-image: repeating-linear-gradient(135deg,deepskyblue,deepskyblue 5px,transparent 5px,transparent 10px)1;
}
</style>

border-image屬性最適合模擬寬度為1px的虛線邊框。如果邊框寬度比較大,實線的端點就會有明顯的斜邊,此時建議使用background-image屬性和線性漸變語法進行模擬,或者干脆使用SVG元素配合stroke-dasharray實現更靈活的邊框效果。

使用 stroke-dasharray 實現任意比例和任意比例數量的虛線

https://blog.csdn.net/weixin_41192489/article/details/121636736

輪廓 outline

outline (輪廓)是繪制于元素周圍的一條線,位于邊框邊緣的外圍,可起到突出元素的作用。

  • 不會占據空間,也不一定是矩形
描述
outline-color規定邊框的顏色(默認值為color的顏色值)。參閱:outline-color 中可能的值。
outline-style規定邊框的樣式。參閱:outline-style 中可能的值。
outline-width規定邊框的寬度。參閱:outline-width 中可能的值。
inherit規定應該從父元素繼承 outline 屬性的設置。
outline-offset設置輪廓的偏移位置
- 正值會擴大輪廓
- 負值會縮小輪廓(常用于避免輪廓被重疊覆蓋,見范例 https://demo.cssworld.cn/new/3/11-1.php)
outline:#00ff00 dotted thick;

輪廓

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43119.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43119.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43119.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

78. UE5 RPG 創建技能數據并初始化技能ui

在上一篇文章里&#xff0c;我們創建了技能的UI&#xff0c;接下來&#xff0c;我們要考慮如何實現對技能UI的填充&#xff0c;肯定不能直接寫死&#xff0c;需要有一些方法去實現技能的更新。我們期望能夠創建一個技能數據&#xff0c;然后根據數據通過回調的方式實現數據的更…

GET正常,POST獲取不到數據

環境復現 前臺&#xff1a; wx.request({url: xxxxxx,method: POST,header: {"content-type": "application/json"},success(res) {console.log(res);},fail(err) {console.error(網絡請求失敗, err);}}); 后端使用springboot&#xff1a; RequestMappin…

一鍵掌握天氣動態 - 基于Vue和高德API的實時天氣查詢

前言 本文將學習如何使用Vue.js快速搭建天氣預報界面,了解如何調用高德地圖API獲取所需的天氣數據,并掌握如何將兩者有機結合,實現一個功能豐富、體驗出色的天氣預報應用 無論您是前端新手還是有一定經驗,相信這篇教程都能為您帶來收獲。讓我們一起開始這段精彩的Vue.js 高德…

桌面懸浮備忘錄哪個好?能在桌面懸浮使用的備忘app

備忘錄是我們日常工作和生活中的常用工具&#xff0c;它幫助我們記錄重要信息&#xff0c;提醒我們完成各項任務。而將備忘錄懸浮在桌面上使用&#xff0c;無疑能進一步提高我們的工作效率。想象一下&#xff0c;在處理復雜的工作任務時&#xff0c;你能夠隨時在桌面上查看提醒…

C++原創娛樂系列抽搐的井號

玩法&#xff1a; 一次性輸入大量w&#xff0c;s&#xff0c;a&#xff0c;d&#xff0c;然后即可欣賞抽搐的井號 上代碼 #include"bits/stdc.h" #include"Windows.h" using namespace std; int main(){int w10,a10;char n;while(1){for(int i0;i<w;…

JS獲取本機ip地址方法

前端獲取本機ip地址&#xff1b;使用第三方免費API <script>function ipJson(ipJson) {console.log(獲取到的網絡IP,ipJson);//可以把結果存在window上&#xff0c;方便調用window.ipJson ipJson;} </script> <script src"https://whois.pconline.com.cn/…

產品使用手冊深度剖析:五步快速敲定產品手冊策劃思路

引言 在這個信息爆炸的時代&#xff0c;產品使用手冊不僅是產品的“說明書”&#xff0c;更是品牌與用戶之間建立情感連接的橋梁。一份優秀的手冊&#xff0c;能夠迅速吸引用戶的注意力&#xff0c;引導他們輕松上手&#xff0c;并深入體驗產品的魅力。那么&#xff0c;如何撰…

ruoyi項目swagger文檔升級knife4j文檔

注釋admin模塊中的swagger依賴加入knife4j依賴 <!-- swagger3--> <!-- <dependency>--> <!-- <groupId>io.springfox</groupId>--> <!-- <artifactId>springfox-boot-starter</artifactId>--…

IDEA常用技巧薈萃:精通開發利器的藝術

1 概述 在現代軟件開發的快節奏環境中&#xff0c;掌握一款高效且功能全面的集成開發環境&#xff08;IDE&#xff09;是提升個人和團隊生產力的關鍵。IntelliJ IDEA&#xff0c;作為Java開發者的首選工具之一&#xff0c;不僅提供了豐富的編碼輔助功能&#xff0c;還擁有高度…

flowable框架 6.8 自定義函數方法

為了比對流程中條件的checkbox&#xff0c;由于本身elui的checkbox是亂序的&#xff0c;所以需要這個自定義函數來判斷 環境&#xff1a;jdk1.8 flowable6.8 springboot2 1.自定義函數 import org.springframework.stereotype.Component;import java.util.Arrays; import ja…

預算有限?如何挑選經濟適用的安全管理系統?

如今&#xff0c;無論是信息安全、生產安全還是人員安全&#xff0c;都直接關系到企業的穩定運營和長遠發展。然而&#xff0c;對于許多中小企業而言&#xff0c;高昂的安全管理系統投入往往成為一大難題。那么&#xff0c;在預算有限的情況下&#xff0c;如何挑選一款既經濟適…

Github 2024-07-07php開源項目日報 Top9

根據Github Trendings的統計,今日(2024-07-07統計)共有9個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量PHP項目9Blade項目2JavaScript項目1Laravel:表達力和優雅的 Web 應用程序框架 創建周期:4631 天開發語言:PHP, BladeStar數量:75969 個Fork數…

如何整合生成的人工智能?(GenAI)為你未來的工作增加動力

生成人工智能(GenAI)它發展迅速&#xff0c;以前所未有的速度取得了突破。人工智能將繼續改變各行各業&#xff0c;預計2023年至2030年的年增長率將達到37.3%。由于一種新的知識工作者現在面臨被取代的風險&#xff0c;生成式人工智能的驚人崛起進一步加劇了這種緊迫性。據《未…

如何快速學好一門新技術

目錄 學習步驟 1. 基本了解 2. 快速上手 3. 系統學習 4. 主動運用 5. 了解原理 6. 深入源碼 7. 修改源碼 8. 推陳出新 學到哪一步? 無論學習任何編程技術,都可以遵循以下步驟: 學習步驟 1. 基本了解 首先了解這項技術的用途、優缺點及適用場景。建議通過網上的經…

Apache Hadoop文件上傳、下載、分布式計算案例初體驗

上篇&#xff1a;Apache Hadoop完全分布式集群搭建無坑指南-CSDN博客 通過上篇&#xff0c;我們搭建了完整的Hadoop集群&#xff0c;此篇我們簡單通過集群上傳和下載文件&#xff0c;同時測試分布式worldCount案例。后續的篇章再對分布式計算、分布式存儲作更深的理解。 上傳…

嘎嘎詳細的三維變換詳細講解,包括視圖變換、投影變換等,超級通俗易懂!

前置二維空間的各種變換筆記&#xff1a;二維變換 三維空間中的齊次坐標 從二維變換開始引申&#xff0c;可得到三維中的一個點的表達方式為 ( x , y , z , 1 ) ? (\mathbf{x}, \mathbf{y}, \mathbf{z}, 1)^{\top} (x,y,z,1)?&#xff0c;也就是w1&#xff0c;而三維的向量…

插入排序算法(C語言版)

直接插入排序 插入排序&#xff08;insert sort&#xff09;是一種簡單的排序算法&#xff0c;它的工作原理與手動整理一副牌的過程非常相似。 具體來說&#xff0c;我們在未排序區間選擇一個基準元素&#xff0c;將該元素與其左側已排序區間的元素逐一比較大小&#xff0c;并…

如何用 Python 繞過 cloudflare(5秒盾) 抓取數據:也不是很難嘛!

大家好!我是愛摸魚的小鴻,關注我,收看每期的編程干貨。 逆向是爬蟲工程師進階必備技能,當我們遇到一個問題時可能會有多種解決途徑,而如何做出最高效的抉擇又需要經驗的積累。本期文章將以實戰的方式,帶你全面了解 cloudflare(5秒盾) 以及如何繞過使用 cloudflare 服務…

(自用)gtest單元測試

gtest是Google的一套用于編寫C測試的框架&#xff0c;可以運行在很多平臺上&#xff08;包括Linux、Mac OS X、Windows、Cygwin等等&#xff09;。基于xUnit架構。支持很多好用的特性&#xff0c;包括自動識別測試、豐富的斷言、斷言自定義、死亡測試、非終止的失敗、生成XML報…

Mybatis的優缺點及適用場景?

目錄 一、什么是Mybatis&#xff1f; 二、Mybatis框架的特點 三、Mybatis框架的優點&#xff1f; 四、MyBatis 框架的缺點&#xff1f; 五、MyBatis 框架適用場合&#xff1f; 六、代碼示例 1. 配置文件 mybatis-config.xml 2. 映射文件 UserMapper.xml 3. Java 代碼…