iT邦幫忙

0

css及html手機美工排版正常的方式

  • 分享至 

  • xImage

除了 一種手機會讓"顯示密碼"美工排版歪掉,其他都正常,下面6個圖形是歪掉的畫面,加上程式、css設定、html設定,麻煩指教一下,如何修正css、html可以讓排版全部正常?謝謝高手們。
https://ithelp.ithome.com.tw/upload/images/20230309/20104542khJ649Cwtm.jpghttps://ithelp.ithome.com.tw/upload/images/20230309/20104542Eq8XlQRouO.jpghttps://ithelp.ithome.com.tw/upload/images/20230309/20104542LbrwxpIaDM.jpghttps://ithelp.ithome.com.tw/upload/images/20230309/20104542EouznaAB4k.jpghttps://ithelp.ithome.com.tw/upload/images/20230309/20104542AUKLSfElIp.jpghttps://ithelp.ithome.com.tw/upload/images/20230309/20104542kAu86JmoUi.jpg

看更多先前的討論...收起先前的討論...
ccutmis iT邦高手 2 級 ‧ 2023-03-09 15:42:15 檢舉
css media query 對於小尺寸設備的寫法研究一下
還有檢查header 區塊有沒有這行:
<meta name="viewport" content="width=device-width, initial-scale=1">
我的建議是用BOOTSTREP 設計可能會比較快一點,不同的裝置他的螢幕可顯示寬度顯然不一樣
你有可能需要使用 FLEX BOX 來設計你的版面
而BOOTSTREP有針對這各,容許你對所有的物件設定在不同螢幕寬度下,物件的尺寸定義,建議樓主有空了解一下
dove iT邦新手 5 級 ‧ 2023-03-09 17:32:48 檢舉
謝謝你們,我找時間研究一下,有沒有其他人知道原因?
rain_yu iT邦研究生 5 級 ‧ 2023-03-10 11:49:02 檢舉
我的想法是讓符號等比例縮小
ccutmis iT邦高手 2 級 ‧ 2023-03-10 12:45:46 檢舉
我的想法...其實是不要理那個解析度的設備... Width:280 什麼古董QQ? 喔 是 ...Galaxy Fold...不是古懂,叫他做人不要太懶把屏展開再登入!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
ccutmis
iT邦高手 2 級 ‧ 2023-03-09 19:05:50


請注意這裡的尺寸是 寬390 高844


請注意這裡的尺寸是 寬280 高653

就是說 寬280的場景會有你說的問題,可以用CSS的MediaQuery來處理,例如:

@media(max-width: 280px){
 /* 在這區塊修改css,例如: */
 span{padding:0px;}
 .fa-envelope::before...略..., .fa-user::before{
    right:0px;
 }
 /* 只是舉例,你要依實際情況去修改 */
}

你提供的資訊並不完整,所以我只能大概把自己的想法寫出來供您參考,希望有幫助。

在看你的原文中我有兩項題外話的建議:

  1. 發問時附圖很好,但如果是跟程式碼有相關的,建議多利用markdown的原始碼標示,對想要幫忙回答問題的網友比較便利。
  2. 圖片中有個Textbox用了 style="80%" 這個語法,建議少用這種寫法,這是一種在專案裡埋地雷的寫法(當然如果你跟專案經理有仇的話可以多寫...),如果你在html原始碼裡面加入大量的style="...;...;" 那會導致很多你寫的CSS失效或者用js控制的css會失效,原因就是 CSS的選擇器有所謂的優先權,最高的就是html標籤裡面的style="...",再來是id(#id),再來是class(.class),再來是擬別(:hover之類的),再來是屬性(如[type="submit"]),最後是偽元素(如::before)。能用 style="..." 寫的都能改寫到 css style裡面,它唯一的好處就是可以馬上見效,當然這只是個建議。

補充一下,以上面的例子來說:
原本的:

<div style="80%" id="...">...略...</div>

改成:

<style>
.W100{width:100%;} /*或 width:100vw;*/
.W80{width:80%;} /*或 width:80vw;*/
</style>
<div class="W80" id="...">...略...</div>

這樣改寫後的好處就是,在某些情況下可以用 javascript把 class W80 拿掉改成 W100
或者直接加上前述的media query,例如:

@media(max-width: 280px){
 /* 在這區塊修改css,例如: */
 span{padding:0px;}
 .fa-envelope::before...略..., .fa-user::before{
    right:0px;
 }
 .W80{width:95%;} /*或 width:95vw;*/
 /* 只是舉例,你要依實際情況去修改 */
}

這裡的意思就是說在更高解析度時,區塊的寬度仍舊是80%,若畫面寬度為280時,則區塊寬度會變成95%,但如果你是寫style="width:80%" 那就無解了,因為它優先權最高,JS也動不了它。(當然凡事總有例外,還是有辦法動,不過那種就是大手術了)

0
rain_yu
iT邦研究生 5 級 ‧ 2023-03-10 11:56:22

我的想法是讓符號根據螢幕等比例縮小
以下是我學HTML基礎的筆記,我暫時沒有實做過,所以不曉得是否能提供幫助

不同的设备完美视口的大小是不一样的
iphone6 -- 375
iphone6plus -- 414
由于不同设备视口和像素比不同,所以同样的375个像素在不同的设备下意义是不一样,
比如在iphone6中 375就是全屏,而到了plus中375就会缺一块
在移动端开发时,不建議使用px布局
vw 表示的是视口的宽度(viewport width)

  • 100vw = 一个视口的宽度
  • 1vw = 1%视口宽度
    vw这个单位永远相当于视口宽度进行计算
    设计图的宽度以 750px為範例
    使用vw作为单位
    100vw
    创建一个 48px x 35px 大小的元素
    100vw = 750px(设计图的像素) 0.1333333333333333vw = 1px
    6.4vw = 48px(设计图像素)
    4.667vw = 35px
0
eric19740521
iT邦新手 1 級 ‧ 2023-03-11 02:33:53

學習參考
1.用瀏覽器的F12去觀察 CSS的運作
到底有那些元素的CSS語法被執行!!!

https://ithelp.ithome.com.tw/upload/images/20230311/20013294qkKvQRmCV5.jpg

2.上面的步驟知道後
單獨做一張登入畫面login.html,不要包含後端程式

比如我在底下的網址.練習一個CSS flex語法

https://www.runoob.com/try/try.php?filename=trycss3_flexbox_direction_row-reverse

這時候,用瀏覽器F12觀察各個尺寸變化!!

我要發表回答

立即登入回答