求助, CSS 调试的正确方式到底是什么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
div class="box" id="pro-campaign-container">
abcbuzhiming
V2EX    前端开发

求助, CSS 调试的正确方式到底是什么

  •  
  •   abcbuzhiming 2017-04-12 13:58:00 +08:00 2621 次点击
    这是一个创建于 3153 天前的主题,其中的信息可能已经有所发展或是发生改变。
    虽然现在浏览器调试工具已经进化到一个很高的程度,但是作为一个后端出身的程序员,对 CSS 还是存在一种恐惧感,这种恐惧感就是我没有任何办法能很直观的找到“那个盒子为啥在那里而不是在我想要它在的位置”的原因。都是开发 UI 最合适的语言是 CSS 这种标记语言,以描述方式来生成 UI ,但是在遇到位置问题时,到底该咋调试呢,只能一个个的去换参数吗(我周围的前端都是这么做的)。难道就没有类似后端那样,挨个的把条件打印出来,哦,原来在那个位置就是因为 xxx 参数是 xx 值的原因?或者更直观的告诉你为啥那个盒子在那里?
    13 条回复    2017-04-12 18:41:12 +08:00
    murmur
        1
    murmur  
       2017-04-12 14:05:59 +08:00
    能啊,现在的调试工具都可以列出一个样式是哪些样式叠加成的,谁被划掉了
    如果这些都不能解决的话你就需要补一下基础的
    一个盒子在这里不是因为他为什么在那里 可能是因为他爹在那里 他是个子元素而已
    他爹在那里还可能是因为一个边距或者绝对布局
    。。。

    然后你可以试着一个一个把这些 css 勾掉 看影响最大的 css 是哪条 试多了就明白了 不过还是要基础牢固
    dong3580
        2
    dong3580  
       2017-04-12 14:07:20 +08:00
    同是后端,浏览器调试,这不,调试熟练了,可以混个前端职位了,
    Tonni
        3
    Tonni  
       2017-04-12 14:30:00 +08:00
    abcbuzhiming
        4
    abcbuzhiming  
    OP
       2017-04-12 14:31:14 +08:00
    @murmur 不不,你说的这些还是不直观,就像你说的,要基础牢靠,要去看一条条的样式,然后逐步去推测最终结果。而浏览器调试的一个最大坑点是,它能表达一个盒子的所属信息,但是它无法表达盒子和盒子之间的相关信息(这一点完全靠调试人员自己的经验),比如一个盒子其实是被另外一个盒子给挤下去的,这个你要基础不牢靠尤其是对盒模型的那些样式不是特别熟悉的话,调半天都不明白为啥这盒子就没法在这个位置上,这真的是太痛苦了
    lneoi
        5
    lneoi  
       2017-04-12 15:03:24 +08:00
    @abcbuzhiming 好像说的有道理 又感觉哪儿不太对劲..
    abcbuzhiming
        6
    abcbuzhiming  
    OP
       2017-04-12 16:48:07 +08:00
    @lneoi 直白的说吧,现在似乎没有哪款浏览器能表现出盒模型的碰撞关系,如果你不是对 CSS 本身有了解的话,去调试盒模型的位置非常痛苦,有的情况还算直观,有的是完全不知道为啥会出现在那里
    yhxx
        7
    yhxx  
       2017-04-12 16:53:55 +08:00
    前端表示遇到各种各样的奇怪的问题的时候,很大一部分都是靠经验+猜解决的。。。
    lwbjing
        8
    lwbjing  
       2017-04-12 16:54:22 +08:00
    chrome ,右键检查元素,然后控制台样式那里就可以随意改啦。。
    话说 11 年面淘宝的笔试就是给了我一张简单的页面,让我手写 html 跟 css ,那是我第一次靠目测算像素。。
    那时候真好,兼容性基本上只要考虑 IE6 ,其它的基本正常写就可以了。。
    changwei
        9
    changwei  
       2017-04-12 16:54:43 +08:00 via Android
    chrome 按 f12 ,然后弹出来的开发者工具最左上角那个按钮,点一下,然后鼠标移到你觉得“位置不对”的 div 旁边,蓝色是盒子内部,绿色是 padding ,黄色是 margin ,一个一个移过去观察就好了。

    一般情况下除非是浏览器渲染 bug ,不然老老实实把 css 基础学好,把一些渲染特性记笔记(比如说 margin 重叠规则等等),是可以做到看到代码,脑子中就可以模拟渲染出实际的页面布局。
    abcbuzhiming
        10
    abcbuzhiming  
    OP
       2017-04-12 17:03:22 +08:00
    @Tonni 没看懂这东西的作用
    abcbuzhiming
        11
    abcbuzhiming  
    OP
       2017-04-12 17:06:07 +08:00
    @changwei 你这个是表现单个盒子,是的,这个已经做的很好用了,很直观的,但是对我说的,表现盒子和盒子之间的关系的没有
    pspgbhu
        12
    pspgbhu  
       2017-04-12 18:37:37 +08:00
    所以说样式出问题了,还是要靠一点经验的,要不然很难直接定位到问题
    murmur
        13
    murmur  
       2017-04-12 18:41:12 +08:00
    @abcbuzhiming 不痛苦的话前端能值这个工资么
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2210 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 01:03 PVG 09:03 LAX 17:03 JFK 20:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86