Slick: Slick not working with CSS grids fr-units (fractions)

Created on 28 Jun 2017  Β·  21Comments  Β·  Source: kenwheeler/slick

When using fr-units within css grid, Slick can't determine the width properly. Instead correct width, it makes it huge.

====================================================================

#

Here's the bug in action:
https://codepen.io/virmasalo/pen/XgVzrM

====================================================================

Steps to reproduce the problem

  1. Create slick using css grid and px -units
  2. Change px-units to fr-units

====================================================================

What is the expected behaviour?

Work like it does with px or other typical units.

====================================================================

What is observed behaviour?

Slick can't calculate the width properly, but instead gives a huge value for it.

====================================================================

More Details

  • Firefox latest
  • Latest jQuery & Slick

Most helpful comment

See #3415, this issue is not related to Slick, it's the expected behavior of fr units.
Use minmax(0, 1fr); to allow your grid items to shrink.

All 21 comments

I have this problem too. Can you solve this?

Confirmed this behaviour with grids. It doesn't seem to be limited to fractional units in particular. When using "auto" width, it sets the slick-track element's style to width: 2.32644e+8px; transform: translate3d(-7.15828e+7px, 0px, 0px); Looks like it's trying to do some kind of javascript magic that doesn't take grids into account.

Check out: https://jsfiddle.net/o8ggsrny/1/

Looks like it's caused by this line in setDimensions:
_.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));

Setting an explicit width for the column fixes the problem. I was able to work around this and still have a responsive design by setting my columns like so:
grid-template-columns: minmax(100px, min-content) calc(100vw - 463px);

For what it's worth, in our Slick setup we've only had this issue on iOS Safari 10, not 11. We've managed to fix it by setting a width: 100vw value on the .slick-list element.

Anyone have an update on how to fix this issue? I'm trying to shove a slick slider inside a css grid that is split into 3 x 33% columns.

This works fine for me in every browser but Firefox, where I'm having this issue. Slider width is calculated as a bajillion pixels (technical term) wide.

I had this issue as well, to resolve it I had to apply a fixed width to the Slick container, rather than allowing the grid layout to automatically size it horizontally.

Same issue here!

Its failing for me in Chrome 69... Haven't checked other browsers yet...

@Coop920 I had the same layout and adding overflow: hidden; to the grid item containing the slick slider fixed this for me as found here: #3415

Hopefully this helps some people with the same issue while we wait for a fix!

Setting minmax(0, 1fr) or overflow: hidden; didn't fix it for me...
What did the trick was to trigger a window resize in the slider's init callback so slick recalculate's the correct width.

var $featuredNewsItemsList = $(this).find('.js-c-news-items__list');
$featuredNewsItemsList.on('init', function(event, slick, currentSlide, nextSlide) { 
     $(window).trigger('resize');
});
$featuredNewsItemsList.slick({
     //settings
});

Bumping this issue is still a thing in 2019

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ ΠΊΠΎΠ³Π΄Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ свойства flex, ΠΊΠ°ΠΊΠΎΠΉ Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Π°ΠΆΠ΅ дальний Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎ влоТСнности. На самом Π΄Π΅Π»Π΅ display: flex Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ слайдСру, ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ flex-grow: 1; ΠΈΠ»ΠΈ grid-template: 1fr 1fr; Π΄Π°ΠΆΠ΅ Ссли эти свойства стоят Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎ влоТСнности, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° body. Π‘Π»Π°ΠΉΠ΄Π΅Ρ€ Π±Π΅Ρ€Π΅Ρ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π½Π΅ Ρ‚Π°ΠΌ Π³Π΄Π΅ flexbox ΠΈΠ»ΠΈ grid layout Π΅Π΅ динамичСски ΠΏΡ€ΠΎΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ слайдСр, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€ Π΄Π°Π½Π½Ρ‹ΠΉ слайдСр ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚, Π° Таль...

In case it helps someone, I put this codepen together as a proof of concept for a slider we need to implement. https://codepen.io/anon/pen/RdVJPx

Here's the design:
screen shot 2019-03-08 at 7 11 37 pm

In case it helps someone, I put this codepen together as a proof of concept for a slider we need to implement. https://codepen.io/anon/pen/RdVJPx

Here's the design:

Oh my. Too many js for a simple grid and a simple slider. This is a terrible crutch, but a worker. Probably not dragging him into my project. It's easier for me to set the width in the grid in percent, then it works fine

See #3415, this issue is not related to Slick, it's the expected behavior of fr units.
Use minmax(0, 1fr); to allow your grid items to shrink.

See #3415, this issue is not related to Slick, it's the expected behavior of fr units.
Use minmax(0, 1fr); to allow your grid items to shrink.
Thanks^ it's work!) Need this write in documentation)

@enguerranws

See #3415, this issue is not related to Slick, it's the expected behavior of fr units.
Use minmax(0, 1fr); to allow your grid items to shrink.

This trick does not help for height if the slider is vertical. grid-template-rows: minmax (0, 1fr); also tried (

You mean, slick.js is in { vertical: true, verticalSwipe: trueΒ }? See: https://codepen.io/enguerranws/pen/dLNGQE

There seems to have been a change in Chrome 80 so this now applies in more cases than it did previously.

There seems to have been a change in Chrome 80 so this now applies in more cases than it did previously.

yes, after one of the latest updates even if one of parent containers has fixed width it not helps. Required to be not "fr" width of column

Use minmax(0, 1fr); to allow your grid items to shrink.

Worked great for me! πŸŽ‰

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jamesinealing picture jamesinealing  Β·  3Comments

msavov picture msavov  Β·  3Comments

REPTILEHAUS picture REPTILEHAUS  Β·  3Comments

ericestes picture ericestes  Β·  3Comments

eirikrlee picture eirikrlee  Β·  3Comments