擊右上方紅色按鈕關注“web秀”,讓你真正秀起來
冬至,希望大家都可以有餃子和湯圓吃,主要是能和自己家人愛人一起吃個飯。
下面進入主題,用原生JS給擼個圖片上傳,預覽的小示例,希望對大家有所幫助。
function fChange() { let file=document.getElementById('file'); // 輸出已經選擇圖片名字 console.log(file.value); // 輸出已經選擇的圖片對象 console.log(file.files[0]); } ... <input type="file" id="file" onchange="fChange()">
10行JavaScript代碼完成圖片的上傳預覽
我們怎么把圖片對象渲染到頁面了?達到可以預覽的目的?
// file 轉 blob對象 let bold=window.URL.createObjectURL(file.files[0]); console.log('bold==>'+bold); let boldImg=document.getElementById('bold'); boldImg.src=bold; // file 轉 base64 let base64Img=document.getElementById('base64'); var reader=new FileReader(); reader.readAsDataURL(file.files[0]); reader.onload=function (e) { console.log('base64==>'+this.result); base64Img.src=this.result; }
10行JavaScript代碼完成圖片的上傳預覽
10行JavaScript代碼完成圖片的上傳預覽
這樣看blob對象和base64都可以預覽圖片,但是blob對象僅僅是當次緩存,如果刷新,你重新把之前轉的字符串放到src是不可以預覽的,當時base64是可以的。所以存庫的時候不僅可以圖片路徑,還可以直接存base64(base64很占用數據庫空間,文件越大,base64字符串越大)
下面我們對上面示例做優化,可以上傳多張圖片并預覽,美化界面。
10行JavaScript代碼完成圖片的上傳預覽
10行JavaScript代碼完成圖片的上傳預覽
<div id="img-pre"> </div> <div id="add-pic"> <input type="file" id="up-file" onchange="fChange()"> </div>
css樣式
#add-pic{ width: 100px; height: 100px; background: url('./add-pic.png') } #add-pic input{ width: 100%; height: 100%; display: none; } #img-pre:after{ display: block; content: ''; clear: both; } #img-pre img{ float: left; width: 100px; height: 100px; margin-right: 10px; }
javascript
let addPic=document.getElementById('add-pic'), upFile=document.getElementById('up-file'); // 監聽圖片點擊,從而觸發input file的點擊事件 addPic.addEventListener('click', function(){ upFile.click(); }) function fChange() { let file=document.getElementById('up-file'); let imgPre=document.getElementById('img-pre'); // file 轉 blob對象 let bold=window.URL.createObjectURL(file.files[0]); // 創建img元素,并添加到img-pre元素里 var img=document.createElement("img"); img.setAttribute("src", bold); imgPre.appendChild(img); }
主要是通過css隱藏掉input file選擇文件按鈕,然后用+號圖片點擊事件來觸發input file的點擊事件,達到能選擇圖片的目的。
喜歡小編的點擊關注,了解更多知識!
源碼地址請點擊下方“了解更多”
了更方便地控制網頁中各種各樣的字體,CSS提供了一系列的字體樣式屬性,具體如下。
(1)font-size屬性:字號
font-size屬性用于設置字號,該屬性的屬性值可以為像素值、百分比數值、倍率等。表3-l列舉了fomt-size屬性常用的屬性值單位,具體如下。
單位 | 說明 |
em | 倍率單位,指相對于當前對象內文本的字體倍率 |
px | 像素值單位,是阿頁設計中常用的單位 |
% | 百分比數值單位,指相對于當前對象內文本的字體百分比 |
在表1所列的常用單位中,推薦使用像素值單位—px。例如,將網頁中所有段落文本的字號設為12px,CSS樣式示例代碼如下:
· p(font-size:12px;)
(2)font-family屬性:字體fomt-family屬性用于設置字體。網頁中常用的字體有宋體、微軟雅黑、黑體等。例如,將網頁中所有段落文本的字體設置為微軟雅黑,CSS樣式示例代碼如下:
p[font-family:“微軟雅黑“:]
fomt-family屬性可以同時指定多個字體,各字體之間以逗號隔開。如果瀏覽器不支持第一種字體,則會嘗試下一種,直到匹配到合適的字體。例如,同時指定3種字體的CSS樣式示例代碼如下:
body[font-fanily:“華文彩云”,“宋體“,“黑體";]
當應用上述代碼后,瀏覽器會首選“華文彩云”字體,如果用戶計算機上沒有安裝該字體則選擇“宋體”。以此類推,當fomt-fammily屬性指定的字體都沒有安裝時,瀏覽器就會選擇用戶計算機默認的字體。使用font-family屬性設置字體時,需要注意以下幾點。
· 各種字體之間必須使用英文逗號隔開。
· 中文字體需要加英文引號,但英文字體不需要加引號。當需要設置英文字體時,英文字體名必須位于中文字體名之前。CSS樣式示例代碼如下:
body[font-fanily:Arial,“微款雅黑”,“未體”,”黑體”:] /“正確的書寫方式"
body(font-fanijy:“微軟稚黑”,“宋體”?!昂隗w”,Arial:) /“錯誤的書寫方式"/
· 如果字體名包含空格、#、S等符號,則該字體必須加英文引號,如“font-family.“Times New Roman":"
· 盡量使用系統欺認字體,以保證網頁中的文字在任何用戶的瀏覽器中都能正確顯示。
(3)font-weight屬性:字體粗細
font-weighn 屬性用于定義字體的粗細,其屬性值如表所示。
值 | 描述 |
normal | 默認屬性值,定義標準樣式的字符 |
bold | 定義粗體字符 |
bolder | 定義更粗的字符 |
lighter | 定義更細的字符 |
100~900(100的整數倍) | 定義由細到相的字符,其中400等同于normal,700等同于bold,數值越大字體越粗 |
表2列舉了常用的font-weight屬性的屬性值。在實際工作中,常用的屬性值為normal和bol,分別用于定義正常和加粗顯示的字體。
(4)font-variant屬性:變體
font-variant 屬性用于設置英文字符的變體,一般用于定義小型大寫字體,該屬性僅對英文字符有效。font-variant 屬性的可用屬性值如下。
· normal:默認值,測覽器會顯示標準的字體。small-caps:瀏覽器會顯示小型大寫的字體,即所有的小寫字
母均會轉換為大寫字母。但是所有使用小型大寫字體的字母和其余文本相比,字體尺寸更小。例如,圖3-l2中框線標注的小型大寫字母,就是使用font-variant屬性設置的。
(5)font-style屬性:字體風格
fomt-style屬性用于定義字體風格。例如,設置斜體、傾斜或正常字體。font-style屬性的可用屬性值如下。
· nommal:默認值,測覽器會顯示標準的字體樣式。
· italic:測覽器會顯示斜體的字體樣式。
· oblique:測覽器會顯示傾斜的字體樣式。
當font-style屬性取值為italic或oblique時,文字都會顯示傾斜的樣式,兩者在顯示效果上并沒有本質區別。但italie使用了字體的傾斜屬性,并不是所有的字體都有傾斜屬性;而obhique只是使文字傾斜,無關該字體有沒有傾斜屬性。
(6)fomt屬性:綜合設置字體樣式
fomt屬性用于對字體樣式進行綜合設置,其基本語法格式如下:
選擇器{font:font-style font-varlant font-weight font-size/line-height font-fanlly:}
使用fomt屬性綜合設置字體樣式時,必須按上述語法格式中的順序書寫,各個屬性以空格隔開(line-height用于設置行間距,屬于文本外觀屬性,在后面將具體介紹)。例如,下面設置字體樣式的示例代碼:
p{font-fanily:Arial,"宋體";font-size:30px; font-style:italic; font-weight:boid; font-variant:
amal1-cape; line-height:40px;}
上述代碼可以使用fomt屬性綜合設置字體樣式,其等價于:
p{font:italic small-caps bold 30px/40px Arial,"宋體";}
其中,不需要設置的屬性可以省略(省略的屬性將取默認值),但必須保留fomt-size和 font-family屬性,否則font 屬性將不起作用。
下面通過一個案例具體演示如何使用fomt屬性綜合設置字體樣式,如下所示。
<!doctype html>
<html>
<head>
<meta charset.-"utf-8">
<title>font l國性</title>
<style type-"text/css">
.one{ font:italic 18px/30px"隸書":}
.two{ font:italic l8px/30px;}
</style>
</head>
<body>
<p class="one">段落1:使用font 屬性綜合設置段落文本的字體風格、字號,行高和字體。</p>
<p class="two“>段落2:使用font屬性綜合設置段落文本的字體風格、字號和行高。由于省略了字體屬性font-family,
這時font屬性不起作用。</p>
</body>
</htnl>
定義了兩個段落,同時使用fomt屬性分別對它們進行相應的設置,效果如圖。
從圖中可以看出,font屬性設置的樣式并沒有對第二個段落文本生效,這是因為對第二個段落文本的設置中省略了字體屬性“font-family”。
(7)@font-face規則
@font-face是CSS3的新增規則,用于定義服務器字體。通過@font-face規則,可以使用計算機未安裝的字體。@font-face規則定義服務器字體的基本語法格式如下:
@font-face{
font-family:字體名稱:
src:字體路徑;
}
在上述語法格式中,font-family用于指定該服務器字體的名稱,該名稱可以隨意定義;sre用于指定該字體文件的路徑。
下面通過一個剪紙字體的案例來演示@font-face規則的具體用法,如下所示。
<!doctype html>
<html>
<head>
<meta charset-"utf-8">
<title>afont-face規則</title>
<style type-"text/css">
@font-face{
font-fanily:jianzhi; /*服務器字體名稱*/
src:url(FZJZJN.TTF); /*服務器字體文件的路徑*/
}
p{
font-fanily:jianzhi; /*設置字體樣式*/
font-size:32px;
}
</style>
</head>
<body>
<p>明確責任</p>
<p>肩負使命</p>
</body>
</htnl>
在例3-6中,第7~10行代碼用于定義服務器字體;第12代碼用于為段落標簽設置字體樣式。效果如圖所示。
從圖中可以看出,當定義并設置服務器字體后,頁面就可以正常顯示剪紙字體??偨Y例3-6,可以得出使用服務器字體的步驟。
①下載字體,并存儲到相應的文件夾中。
②使用@font-face規則定義服務器字體。
③對元素應用“font-family”字體樣式。
字的傳統字體有楷書、隸書、草書等等,現在的自制字體數量更多。如果還用著系統默認的微軟雅黑,那不妨試著用用新字體。擺脫網頁單調的第一步,從字開始!
目標
在日常工作、生活里,我們常常接觸到宋體、黑體等傳統字體
傳統字體
隨著人們的審美越來越高,就出現了各種各樣新的字體,例如:
火星字體
上面的不算,下面的才算,有很Q的字體,有帶有圖標的字體等等。
新字體
在CSS中,使用font-family屬性來定義字體類型。可指定多種字體,多個字體將按優先順序排列,以逗號隔開,注意逗號一定要是英文逗號。如果電腦沒有第一個字體,則向后選擇,以此類推。
語法:font-family:字體1,字體2,字體3;
定義字體
在CSS中,使用font-size屬性來定義字體大小。常用的單位是長度值(px)
語法:font-family:像素值;
在css文檔里,還有其他的單位,例如絕對單位和相對單位,但是使用的頻率遠不如長度值單位。
注意:瀏覽器默認字體大小是16px
定義字體大小
效果
在CSS中,使用font-weight屬性來定義字體粗細。
語法:font-weight:值;
這個屬性就總共3個狀態:正常(normal)、較細(lighter)、較粗(bold)
在css文檔里,還有數值的選擇,其實沒多大作用,一般都不會使用。
注意:bold和bolder效果是一樣
定義字體粗細
在CSS中,使用font-style屬性來定義字體傾斜效果
語法:font-style:值;
這個屬性就總共2個狀態:正常(normal)、斜體(italic、oblique)
注意:italic、oblique這兩個效果是一樣的,只不過有些字體無法通過italic來設置斜體
,只能通過oblique來強制傾斜。
定義字體粗細
效果
在CSS中,使用color屬性來定義字體顏色。
語法:font-color:顏色值;
顏色值是一個關鍵字或一個16進制的RGB值
關鍵字指的就是顏色的英文名稱,如red、blue、green等。
16進制RGB值指的就是類似"#FBF9D0"這種形式的值。
定義字體顏色
效果
思維導圖
*請認真填寫需求信息,我們會在24小時內與您取得聯系。