掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1022|回复: 5

[求助] 怎么样在css里根据设备/平台来适配不同的样式?

[复制链接]

该用户从未签到

发表于 2019-6-14 10:01:30 | 显示全部楼层 |阅读模式
本帖最后由 5dhtml 于 2019-6-14 10:02 编辑 0 N( a) Z6 W; X. k
# A1 n# m  `) @) s4 l
我发现PC上goldendict和安卓上比如欧路对css的解析有时候有无法接受的差异,导致同一个词典在不同设备显示有问题,我对CSS、HTML之类的是外行,只会根据别人的CSS做一些简单的修改,我看到FF大佬制作的词典里似乎有根据平台来适配,但是自己实际测试却无效,这是什么原因呢?我感觉要根据设备适配总得根据useragent什么的吧,像这样直接写可以吗?
8 `; [; [9 l* K2 O, E" V# i- j
# D9 I. B4 \8 S2 c7 FFF的collins词典
/ K' Y" p! e6 X8 |# ^& p
  1. /* set automatically by script embedded in HTML */
    $ ~0 Q9 {6 i0 j1 e" W6 u* q
  2. .windowsnt.goldendict{
    + w6 G: ^0 ~) N5 h
  3.         font-size: 120%;
      f/ G- B0 n+ C: S3 Y6 M) {, {
  4. }
      o- W( _* @# @/ I
  5. .windowsnt.goldendict .word_entry{9 j9 b9 @& R' h& v# i* {0 G
  6.     margin-top: 20px;
    - e2 y" E+ z. G1 h0 A. J+ R" Y2 [
  7. }# h1 X$ @+ O" x( Z9 M; ^
  8. .windowsnt.goldendict .tab_multiwords{
    + a" u5 o2 r' Q8 j" t
  9.     margin-bottom: -20px;) R. }7 S9 \8 \+ J
  10. }
复制代码
' S" b0 ~- l( F! Y  [
LDOCE5:4 E0 U5 y  y, K; [: P/ B' D6 Q
  1. .mobile .lm5pp_popup {" v; o- N+ ]! D& B& [2 B; M1 k
  2.     bottom: 50px;
    9 r, f. E2 m- I: \8 X6 O! v
  3.     right: 10px;
    * h8 b& I  p0 f5 {* S% x' y5 \
  4. }
复制代码
8 n3 g3 f& Y, {0 m( t: b; t

# g+ @6 F' k8 ]; ^

评分

1

查看全部评分

本帖被以下淘专辑推荐:

  • TA的每日心情
    开心
    2019-6-23 00:02
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2019-6-14 15:14:42 | 显示全部楼层
    直接这样写不行,想要让您的词典在不同平台都显示的很好,需要针对不同平台写特定的CSS,但是仅仅用CSS是不行的,要配合 JavaScript。一般做法是这样的:
    3 T6 J$ C' o* g: J) X比如你的一个词条HTML是这样的:+ X& @" f- R) N
    8 `' x  [# f. b3 }9 w$ v
    <p id="entry">
    " ~2 W4 d' H' ~    <span class="headword">apple</span>7 e# ]3 u2 D% o3 z
        <p class="meaning">a round fruit</p>
    5 f8 a1 F7 V' t& r6 Z3 j</p>
    7 I7 J5 n. }% q9 }3 Z7 h在 JavaScript里根据 useragent 判断当前是什么平台,然后用 JavaScript 给 <p id="entry"> 加上一个特定的 class, 比如是 Windows 平台,可能最后结果是 <p id="entry" class="windows">。然后在 CSS 里面就可以用类似您示例中的CSS来针对Windows平台写一些特定的样式了:
    1 m0 i8 ~; p5 ?! t" a
    5 w( z6 d# f' m5 xp#entry.windows {
    $ c; d  T4 B' o( O: |9 U....$ x3 {0 s# ?! n  y$ L/ ~
    }3 D, B! e" H- r( i8 E$ ?" w5 _0 [

    " S  I- }  g8 Y+ t9 c我有点印象F大大的词典好像就是这么做的,您可以参考看看。6 i9 l, q0 Q! [9 x" ^6 i0 t

    点评

    哦,我的疑问被解答了,明白了,他的css里windowsnt和goldendict这些类都是有js配合的,难怪  发表于 2019-6-14 22:48
  • TA的每日心情
    慵懒
    2025-1-28 16:22
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2019-6-14 15:25:58 | 显示全部楼层
    简单的办法就是根据屏幕宽度来判断。! ^1 K# _$ g; O* z, E. K3 j9 |
    1. .wordhead { padding-bottom: .2875rem; word-break: break-all; border-bottom: .08rem dashed #002047; }
      1 w( _0 x/ a% H
    2. @media screen and (max-width: 480px) { .wordhead { border-bottom: .08rem dashed transparent; } }
    复制代码
    更进一步的解决办法是 “自适应设计” 或 “弹性设计”,要看 CSS 的书。2 `5 m# S2 P3 s  C

    ' N5 \7 j8 b$ k1 i; U

    点评

    明白了,这个办法简单,多谢指点!  发表于 2019-6-14 22:50
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2025-7-10 07:41 , Processed in 0.024090 second(s), 30 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表