• <ul id="k6mek"><pre id="k6mek"></pre></ul>
      <ul id="k6mek"></ul>
      <ul id="k6mek"></ul>
    • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
    • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
      <th id="k6mek"></th>
    • <samp id="k6mek"></samp>
    • 具有流體響應(yīng)性的版式

      多年來(lái),流體布局一直是前端開(kāi)發(fā)的常規(guī)部分。但是,流體排版的概念相對(duì)較新,尚待充分探索。到目前為止,大多數(shù)開(kāi)發(fā)人員對(duì)流體排版的想法只是使用Viewport單位,也許有一些最小和最大尺寸。在本文中,我們將把它帶到另一個(gè)層次。我們將研究如何使用受支持的瀏覽器功能和一些基本代數(shù),在多個(gè)斷點(diǎn)和預(yù)定義的字體大小之間創(chuàng)建可擴(kuò)展的流暢字體。最好的部分是您可以使用Sass來(lái)自動(dòng)執(zhí)行所有操作。在本文中,我們將把它帶到另一個(gè)層次。我們將研究如何使用受支持的瀏覽器功能和一些基本代數(shù)在多個(gè)斷點(diǎn)和預(yù)定義的字體大小之間創(chuàng)建可擴(kuò)展的流暢字體。最好的部分是您可以使用Sass來(lái)自動(dòng)執(zhí)行所有操作。與創(chuàng)意設(shè)計(jì)師一起設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)時(shí),通常會(huì)收到多個(gè)Sketch或Photoshop畫(huà)板/布局,每個(gè)斷點(diǎn)一個(gè)。在該設(shè)計(jì)中,元素(如h1標(biāo)題)通常在每個(gè)斷點(diǎn)處具有不同的大小。例如:

      這是很好的第一步,但是您只能將其限制font-size為設(shè)計(jì)人員在提供的斷點(diǎn)處指定的范圍。如果您問(wèn):“ font-size850像素寬的視口應(yīng)該什么?” ,設(shè)計(jì)師會(huì)怎么說(shuō)呢?在大多數(shù)情況下,答案是它應(yīng)該在24像素至34像素之間。但是現(xiàn)在,根據(jù)您的CSS,它僅為24px,這可能不是設(shè)計(jì)人員所設(shè)想的。

      此時(shí),您的選擇是計(jì)算該大小應(yīng)為多少并添加另一個(gè)斷點(diǎn)。那很容易。但是其他所有決議呢?font-size800px寬應(yīng)該什么?那900px呢?935px呢?顯然,設(shè)計(jì)人員不會(huì)為每個(gè)可能的分辨率提供完整的布局。即使它們做到了,您是否應(yīng)該font-sizes為設(shè)計(jì)人員所需的所有不同點(diǎn)添加數(shù)十個(gè)(或數(shù)百個(gè))斷點(diǎn)?當(dāng)然不是。

      您的布局已經(jīng)隨著視口的寬度而流暢地縮放。如果您的版式可以根據(jù)您的布局合理地縮放,那會(huì)不會(huì)很好?我們還可以做些什么來(lái)改善這一點(diǎn)?

      視口救援單位?

      視口單位是朝正確方向邁出的又一步。它們使您的文本可以根據(jù)布局靈活地調(diào)整大小。如今,瀏覽器支持功能非常強(qiáng)大。

      但這僅在您的創(chuàng)意畫(huà)板考慮到這一點(diǎn)時(shí)有效。設(shè)計(jì)師是否選擇了恰好是每個(gè)畫(huà)板寬度2%的文字大小?當(dāng)然不是。讓我們計(jì)算vw每個(gè)斷點(diǎn)所需值:

      22px大小@ 576px寬= 22 / 576 ×100 = 3.82vw 24px大小@ 768px寬= 24 / 768×100 = 3.13vw 34px大小@ 992px寬= 34 / 992 ×100 = 3.43vw

      它們很接近,但不盡相同。因此,您仍然需要使用媒體查詢?cè)谖谋敬笮≈g進(jìn)行轉(zhuǎn)換,并且仍然會(huì)有跳轉(zhuǎn)。考慮一下這怪異的副作用:

      @ 767像素,視口寬度的3.82%為29像素。如果視口寬1像素,則font-size突然下降到24px。調(diào)整視口大小的動(dòng)畫(huà)演示了這種不良的副作用:

      統(tǒng)計(jì)線性回歸?

      等待。什么?是的,這是一篇有關(guān)CSS的文章,但是一些基本的數(shù)學(xué)方法可以為解決我們的問(wèn)題提供很好的解決方案。

      首先,讓我們?cè)趫D表上繪制分辨率和相應(yīng)的文本大?。?/span>

      在這里,您可以看到設(shè)計(jì)師在定義的視口寬度下指定的文本大小的散點(diǎn)圖。x軸是視口寬度,y軸是font-size。看到那條線?這就是趨勢(shì)線這是一種font-size根據(jù)提供的數(shù)據(jù)查找任何視口寬度的插值的方法。

      趨勢(shì)線是所有這些的關(guān)鍵

      如果您可以font-size根據(jù)這一趨勢(shì)線進(jìn)行設(shè)置,那么您將擁有一個(gè)可以在所有分辨率上平滑縮放的h1,這些分辨率接近匹配設(shè)計(jì)師的預(yù)期。首先,讓我們看一下數(shù)學(xué)。直線由以下公式定義:

      如何在CSS中使用它?

      好的,這在數(shù)學(xué)上變得越來(lái)越沉重。我們?nèi)绾卧谇岸薟eb開(kāi)發(fā)中實(shí)際使用這些東西?答案是CSS calc()再次,很好地支持了一種相當(dāng)新的CSS技術(shù)。

      /// least-squares-fit
      /// Calculate the least square fit linear regression of provided values
      /// @param {map} $map - A Sass map of viewport width and size value combinations
      /// @return Linear equation as a calc() function
      /// @example
      ///   font-size: least-squares-fit((576px: 24px, 768px: 24px, 992px: 34px));
      /// @author Jake Wilson <jake.e.wilson@gmail.com>
      @function least-squares-fit($map) {

        // Get the number of provided breakpoints
        $length: length(map-keys($map));

        // Error if the number of breakpoints is < 2
        @if ($length < 2) {
          @error "leastSquaresFit() $map must be at least 2 values"
        }

        // Calculate the Means
        $resTotal: 0;
        $valueTotal: 0;
        @each $res, $value in $map {
          $resTotal: $resTotal + $res;
          $valueTotal: $valueTotal + $value;
        }
        $resMean: $resTotal/$length;
        $valueMean: $valueTotal/$length;

        // Calculate some other stuff
        $multipliedDiff: 0;
        $squaredDiff: 0;
        @each $res, $value in $map {

          // Differences from means
          $resDiff: $res - $resMean;
          $valueDiff: $value - $valueMean;

          // Sum of multiplied differences
          $multipliedDiff: $multipliedDiff + ($resDiff * $valueDiff);

          // Sum of squared resolution differences
          $squaredDiff: $squaredDiff + ($resDiff * $resDiff);
        }

        // Calculate the Slope
        $m: $multipliedDiff / $squaredDiff;

        // Calculate the Y-Intercept
        $b: $valueMean - ($m * $resMean);

        // Return the CSS calc equation
        @return calc(#{$m*100}vw + #{$b});

      }


      返回觀點(diǎn)列表
      本文標(biāo)簽:

      相關(guān)專(zhuān)題

      • 品牌官網(wǎng)設(shè)計(jì)
        品牌官網(wǎng)設(shè)計(jì)

        杭州派迪科技為高端客戶提供品牌官網(wǎng)咨詢策劃,品牌官網(wǎng)設(shè)計(jì),品牌官網(wǎng)建設(shè)開(kāi)發(fā)服務(wù),以國(guó)際化視野和標(biāo)準(zhǔn)為基礎(chǔ),為各行業(yè)領(lǐng)軍品牌提供高端企業(yè)網(wǎng)站定制、策劃、設(shè)計(jì)、互動(dòng)與制作

        查看詳情
      • 大策略營(yíng)銷(xiāo)門(mén)戶網(wǎng)站
        大策略營(yíng)銷(xiāo)門(mén)戶網(wǎng)站

        杭州派迪科技有自己的營(yíng)銷(xiāo)型網(wǎng)站CMS系統(tǒng),適合白帽SEO網(wǎng)站。特別對(duì)大策略的營(yíng)銷(xiāo)型門(mén)戶網(wǎng)站制作有一定的經(jīng)驗(yàn),曾經(jīng)為上海天擎外貿(mào)行業(yè)網(wǎng)站、浙江兆龍營(yíng)銷(xiāo)型門(mén)戶、先臨三維門(mén)戶營(yíng)銷(xiāo)網(wǎng)站提供全程的技術(shù)支持及SEO優(yōu)化指導(dǎo)

        查看詳情
      • 集團(tuán)/上市公司網(wǎng)站
        集團(tuán)/上市公司網(wǎng)站

        杭州派迪科技為杭州本地集團(tuán)公司提供網(wǎng)頁(yè)設(shè)計(jì)、制作、開(kāi)發(fā)服務(wù),為集團(tuán)公司網(wǎng)站建設(shè)提供了響應(yīng)式、營(yíng)銷(xiāo)型、品牌型、門(mén)戶型網(wǎng)站建設(shè)需求,歡迎廣大集團(tuán)公司客戶咨詢

        查看詳情
      • 外貿(mào)網(wǎng)站建設(shè)
        外貿(mào)網(wǎng)站建設(shè)

        杭州派迪科技為高端客戶提供外貿(mào)網(wǎng)站咨詢策劃,外貿(mào)官網(wǎng)設(shè)計(jì),外貿(mào)官網(wǎng)建設(shè)開(kāi)發(fā)服務(wù),以谷歌搜索引起算法為基礎(chǔ),為各行業(yè)外貿(mào)公司提供高端企業(yè)外貿(mào)網(wǎng)站定制、策劃、設(shè)計(jì)、互動(dòng)與制作

        查看詳情
      • 企業(yè)網(wǎng)站建設(shè)
        企業(yè)網(wǎng)站建設(shè)

        高端專(zhuān)業(yè)、令人印象深刻的用戶界面、易于訪問(wèn)——企業(yè)網(wǎng)站必須反映一切,因?yàn)榕傻峡萍荚谶@里提供幫助,憑借精湛的技術(shù)、豐富的經(jīng)驗(yàn)、與客戶的持續(xù)溝通以及對(duì)每一個(gè)細(xì)節(jié)的關(guān)注,我們確保在快速的周期時(shí)間內(nèi)提供優(yōu)質(zhì)的服務(wù)。

        查看詳情
      • 半定制網(wǎng)站
        半定制網(wǎng)站

        杭州派迪科技模板網(wǎng)站建設(shè)專(zhuān)題_各行業(yè)方案專(zhuān)題欄目提供各行業(yè)產(chǎn)品適合的網(wǎng)站建設(shè)方案,幫助企業(yè)了解派迪科技建站效果等信息,您可以通過(guò)本站了解各行業(yè)網(wǎng)站建設(shè)方案,如需要獲取本行業(yè)定制網(wǎng)站建設(shè)方案,可以聯(lián)系在線客服或撥打電話咨詢

        查看詳情

      體驗(yàn)從溝通開(kāi)始,讓我們聆聽(tīng)您的需求!

      開(kāi)始您的數(shù)字化品牌體驗(yàn)! 0571-85815193 期待您的來(lái)電!

      [ 網(wǎng)站建設(shè)×品牌官網(wǎng)設(shè)計(jì)×大策略營(yíng)銷(xiāo)門(mén)戶×微信小程序開(kāi)發(fā)×微信公眾號(hào)開(kāi)發(fā)]

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      免費(fèi)獲取項(xiàng)目策劃

      項(xiàng)目開(kāi)發(fā)部產(chǎn)品經(jīng)理

      項(xiàng)目開(kāi)發(fā)部產(chǎn)品經(jīng)理

      免費(fèi)獲取項(xiàng)目策劃

      我們正使用 cookies 來(lái)改善您的訪問(wèn)體驗(yàn)

      派迪科技非常重視您的個(gè)人隱私,當(dāng)您訪問(wèn)我們的網(wǎng)站www.bmwdream.cn時(shí),請(qǐng)同意使用所有cookies 。

      如果您想詳細(xì)了解我們?nèi)绾问褂胏ookies請(qǐng)?jiān)L問(wèn)我們的 《隱私政策》

      Cookie 偏好

      如果您想詳細(xì)了解我們?nèi)绾问褂胏ookie請(qǐng)?jiān)L問(wèn)我們的 《隱私政策》

      管理cookie偏好

      基本 cookies

      始終允許

      這些 cookies 是網(wǎng)站運(yùn)行所必需的,不能在我們的系統(tǒng)中關(guān)閉。它們通常僅針對(duì)您所做的相當(dāng)于服務(wù)請(qǐng)求的操作而設(shè)置,例如設(shè)置您的隱私首選項(xiàng)、登錄或填寫(xiě)表格。您可以將瀏覽器設(shè)置為阻止或提醒您有關(guān)這些 cookies 的信息,但網(wǎng)站的某些部分將無(wú)法運(yùn)行。這些 cookies 不存儲(chǔ)任何個(gè)人身份信息。

      性能 cookies

      始終允許
      這些 cookies 使我們能夠計(jì)算訪問(wèn)量和流量來(lái)源,以便我們可以衡量和改進(jìn)我們網(wǎng)站的性能。它們幫助我們了解哪些頁(yè)面受歡迎和不受歡迎,并了解訪問(wèn)者如何在網(wǎng)站上移動(dòng)。這些 cookies 收集的所有信息都是匯總的,而且是匿名的。如果您不允許這些 cookies,我們將不知道您何時(shí)訪問(wèn)了我們的網(wǎng)站,也無(wú)法監(jiān)控其性能。

      功能性 cookies

      這些 cookies 收集信息用于分析和個(gè)性化您的定向廣告體驗(yàn)。您可以使用此撥動(dòng)開(kāi)關(guān)來(lái)行使選擇不獲取個(gè)人信息的權(quán)利。如果您選擇關(guān)閉,我們將無(wú)法向您提供個(gè)性化廣告,也不會(huì)將您的個(gè)人信息交給任何第三方。

      定位 Cookies

      這些 cookies 可能由我們的廣告合作伙伴通過(guò)我們的網(wǎng)站設(shè)置。這些公司可能會(huì)使用它們來(lái)建立您的興趣檔案,并在其他網(wǎng)站上向您展示相關(guān)廣告。它們不直接存儲(chǔ)個(gè)人信息,而是基于唯一標(biāo)識(shí)您的瀏覽器和互聯(lián)網(wǎng)設(shè)備。如果您不允許使用這些 cookie,您將體驗(yàn)到較少針對(duì)性的廣告。
      • <ul id="k6mek"><pre id="k6mek"></pre></ul>
        <ul id="k6mek"></ul>
        <ul id="k6mek"></ul>
      • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
      • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
        <th id="k6mek"></th>
      • <samp id="k6mek"></samp>