the funniest thing is I discovered "gap" by myself. I didn't want to use margin on my flex items, and I just thought of "gap", wrote it down and it worked 🤣🤣🤣
At the end of the video if you're just trying to stop the user from selecting the text (and seeing the text cursor), then "user-select: none" would be more appropriate than "pointer-events". Using "pointer-events" would be more for stopping a user from clicking an input, like a button or a text field, etc. The "pointer-events" property also has the side-effect of preventing the inspection click (Shortcut: "ctrl+shift+c") from opening in the dev-tools console (at least on Chrome) which if you're developing a website can get a bit annoying. I also saw in another comment that "pointer-events: none" also prevents hover effects, right click context menus, etc. Something slightly unrelated but still important that I wanted to share is: Do not use "pointer-events: none" instead of the "disabled" attribute on an input. This is because while it does prevent mouse/tap events, it doesn't affect keyboard navigation So if you're building a website with accessibility in mind it's important to consider that people can focus in on the input with their keyboards.
Hey, can you update the link for the "Full Course Content" inside the JavaScript and HTML course? The Google Drive link goes to a 404 google drive page. Thanks!
As a tip for text gradients (No. 8), order matters in your rule: set the background first, then clip. Or don't use the 'background' shortcut (gradients are set with background-image).
You just saved me from having to write out some JS to handle object fade in transitions. I've always had to observe animationend or transitionend events in order to manipulate the display: none style. I've been doing this for quite some time now. Thank you so much!
In case you are using react, I suggest you take a look at CSSTransition npm package. It simplifies animations a lot by applying different subclasses during the animation, and it allows to combine display: none with any transition very easily. However, I am sure that even outside react and npm there are plenty of similar solutions, so check it out
These were awesome Ed! As a full-stack dev on some legacy systems I usually loathe dealing in the CSS but these proved to me that not everything has to be difficult. I just need to keep learning.
not sure what you mean by legacy systems in a css context? and if you mean stylesheets that use float layouts, ususally those are pretty easy to just change into modern options like flex, grid, etc.
I always thought that HTML and CSS can only do so little and you can only STYLE things. Now that I'm learning CSS, OMFG!!!! I don't believe how much built-in functionality it has. I'm currently in the ResizeBoth trick and I'm BLOWN AWAY!!! Edit: OMG! The "pointers-event" was also something I was searching for!!!
When I started building UIs, I knew no Javascript and I had the non-starter syndrome of "JS is hard", so with just HTML and CSS, I had already been creating hamburger toggle menu and website dark and light mode switch. Not a drop of JS in those code.
@@babatundeadenowo7568 Thank you for the comment! JS seems pretty easy to me, I never understood this "JS is hard" thing some people say. The more I learn, CSS is also getting more bearable and even enjoyable at some points!
The default object-fit is not contain, it's fill. Also elements with display:none are not removed from the dom they just never render. they are fully accessible programmatically
If it weren't this video I could spent so much time to solve a task. Thank you for sharing this content. Scroll snapping blow up my mind. It helped a lot.
dont eliminate its pointer events to get rid of selection. that is user-select: none; and also cursor: default; will keep the cursor the same. and u can still have pointer events if u need to on that element
Just yesterday I also posted a video about the Top 10 CSS Features you should know and use in 2023. I was surprised, that we only got 3 points in common... 😲 And as usual: Great Intro 😄👍 Keep it up buddy!
Thank you for this video and that very useful tips! From this list I know only gap and have learned using it as much as possible. liked and subscribed!
Nice compilation 👍 Also, Number 9: Object-fit can also be achieved with .box { background-image:url(car.png); background-size: cover; } Same as object fit, it covers the width and height of its parent element.
in most cases you wanna avoid background image if possible, since you cant add alt text, so if people are using accessibility options like a narrator, and your image is there to add context, youre making your website less usable for people with certain accessibility needs. background image is fine for things like gradients or other purely cosmetic images, but once they have a functional reason to be there, you wanna use the img element so that people who needs accessibility options, can also get context from them.
If you want to use semantic HTML for a button, but you don't want all the browsers to add the default styling for it, just do all: unset; and it will reset all the default styling, no matter the element.
If you want to get rid of selection then you can use "user-select: none", but using "pointer-events: none" is not a good idea since you may need to capture the click event on that node in the future.
with pointer-events: none you are suppressing all the events on that element. So the element exists there but no click events or mousemove events are triggered in Javascript. This makes it super handy when creating an overlay that covers the entire page, cuz the events can pass through when the overlay is inactive
Using pointer-events to make an item non-interactive is a bit... Well I'd say it's not the best approach. You should handle your event logic in js, exclude an element from it. Mixing CSS into the logic of interaction seems to me like a workaround.
What actually disable selection is user-select property. Pointer-events property is disable any pointer interaction for this DOM node - hover, click, drag, etc - so you pointer can 'hover' over elements which lay below element with this property. But user-select simply disallow you to select text/image from selecting it on the page and still blocks 'hover'ing elements below it.
Great video! Could I ask, what was the vscode extension you were using that showed all the parameters for the animation property (timing-function, etc)
Resize both can be used to open something. If u have a container position fixed with a lower z-index you can resize both a small div with and arrow and once you resize it you can see hidden text or something
This effect sounds really cool, but I'm not sure I understand how to do it from your description. You are saying something is hiding behind the background but gets revealed when you resize the foreground box on top of it?
If you want to get to know more great CSS Features: Just yesterday I also posted a video about the Top 10 CSS Features you should know and use in 2023 ... 😉
great stuff dude and as you said in starting : I used 90% tricks shown in this video. I thaght that I know nothing but after thi video I have a good feeling that i am not a bad coder . Inshort you give me my confidence back. otherwise people always bully me that I know nothing much but many time I saved thier work by using such tricks. yet they did not acknowledge me and I was feeling like a looser. But you boost up my moraaaaaaal dude 👍
Grid min-max auto fill! I can’t remember the exact syntax off the top of my head but I have it saved as a template… perfectly responsive even grid columns every time!
0:45 1. Vertical Text
1:23 2. Gap
2:07 3. Flip an Image
2:36 4. Smooth Scrolling
3:25 5. Scroll Snapping
5:54 6. Resize Everything
6:50 7. Truncate
7:44 8. Text Gradients
8:55 9. Object Fit
10:32 10. Pointer Events
Thanks man, I hate videos that dont have predefined timestamps
Thanks
Me too. I'll never go back to this channel again.
Zach Jensz reminds me of the guy that I cheated off during test in high school.
📖 scroll css
the funniest thing is I discovered "gap" by myself. I didn't want to use margin on my flex items, and I just thought of "gap", wrote it down and it worked 🤣🤣🤣
If only all programming was like this
Damn 🔥
Aint no wayyy. Wished i found out that way 😂
@Tris gap works in Safari, caniuse just says it doesn't work in multi-column.
@@user-jg6yz7wq3j not true! safari supports gap since version 10+ inside display grid elements. and since 14.1 inside flex elements.
1. Vertical Text => writing-mode
2. Flex-Gap => gap
3. Flip an image => transform: scaleX(-1)
4. Smooth Scrolling => scroll-behaviour: smooth
5. Scroll Snapping => scroll-snap-type: x mandatory; scroll-snap-align: center;
6. Resize Everything => resize: both | vertical | horizontal;
7. Truncate => --webkit-line-clamp: 1;
8. Text Gradients => --webkit-background-clip, --webkit-text-fill-color
9. Fix image stretching issue => object-fit;
交个朋友
10. Prevent from selecting => pointer-events: none;
@@ghaznavipc 交个朋友
@@andycrazy120 What do you mean by "To make friends"? (I translate your comment in google translate)
@@ghaznavipc Meet and make friends
"Boom, you are in the UK, bitch 😂!" You won't hear that on many other coding channels and I love it.
😂😂😂
He's real
Yup. Definitely rewound. Lol
UK AND all of the former colonies :D
I love that it's the most replayed part too. Everyone was like "Wait, what? Did I just hear that?" 🤣
At the end of the video if you're just trying to stop the user from selecting the text (and seeing the text cursor), then "user-select: none" would be more appropriate than "pointer-events". Using "pointer-events" would be more for stopping a user from clicking an input, like a button or a text field, etc. The "pointer-events" property also has the side-effect of preventing the inspection click (Shortcut: "ctrl+shift+c") from opening in the dev-tools console (at least on Chrome) which if you're developing a website can get a bit annoying. I also saw in another comment that "pointer-events: none" also prevents hover effects, right click context menus, etc.
Something slightly unrelated but still important that I wanted to share is:
Do not use "pointer-events: none" instead of the "disabled" attribute on an input. This is because while it does prevent mouse/tap events, it doesn't affect keyboard navigation
So if you're building a website with accessibility in mind it's important to consider that people can focus in on the input with their keyboards.
Let me know your fave css tricks that people might not know!
Vertical text 🤩🙌
Hey, can you update the link for the "Full Course Content" inside the JavaScript and HTML course? The Google Drive link goes to a 404 google drive page. Thanks!
display: none; 😂 boom
writing-mode
*{margin:0;padding:0}
I love how you express and talk so confidently! Thanks fort the tips!
As a tip for text gradients (No. 8), order matters in your rule: set the background first, then clip. Or don't use the 'background' shortcut (gradients are set with background-image).
You just saved me from having to write out some JS to handle object fade in transitions. I've always had to observe animationend or transitionend events in order to manipulate the display: none style. I've been doing this for quite some time now. Thank you so much!
In case you are using react, I suggest you take a look at CSSTransition npm package. It simplifies animations a lot by applying different subclasses during the animation, and it allows to combine display: none with any transition very easily.
However, I am sure that even outside react and npm there are plenty of similar solutions, so check it out
These were awesome Ed!
As a full-stack dev on some legacy systems I usually loathe dealing in the CSS but these proved to me that not everything has to be difficult. I just need to keep learning.
Is CSS legacy stuff?
not sure what you mean by legacy systems in a css context?
and if you mean stylesheets that use float layouts, ususally those are pretty easy to just change into modern options like flex, grid, etc.
I always thought that HTML and CSS can only do so little and you can only STYLE things. Now that I'm learning CSS, OMFG!!!! I don't believe how much built-in functionality it has. I'm currently in the ResizeBoth trick and I'm BLOWN AWAY!!!
Edit: OMG! The "pointers-event" was also something I was searching for!!!
When I started building UIs, I knew no Javascript and I had the non-starter syndrome of "JS is hard", so with just HTML and CSS, I had already been creating hamburger toggle menu and website dark and light mode switch. Not a drop of JS in those code.
@@babatundeadenowo7568 Thank you for the comment! JS seems pretty easy to me, I never understood this "JS is hard" thing some people say. The more I learn, CSS is also getting more bearable and even enjoyable at some points!
Great video! Helps me as someone who already knows the basics but doesn’t know where to go from there.
Maybe me new video about the Top 10 CSS Features you should know and use in 2023 will help you too? 😉
Love the sense of humour. Personally `box-size: border-box;` is my top pick, that I even recommend placing as browser resets for how powerful it is.
yeah it really should be the default. The first time it took me so long to find out why my 100% width div with a border was overflowing
i love that on the vetical resizing "good luck finding a use for that one".... challenege accepted!
Thanks!
wow, scroll behavior has got to be the best one liner, I remember having to write several lines of Javascript code to achieve that effect
Using `pointer-events: none` will also cause click events to not register on things. You could use `user-select: none` to prevent just selection.
You made my day!! Learned so much productive today!! Thank you so much man
The default object-fit is not contain, it's fill.
Also elements with display:none are not removed from the dom they just never render. they are fully accessible programmatically
object-fit: cover - that one and scroll snapping were new to me. Thank you!
If it weren't this video I could spent so much time to solve a task. Thank you for sharing this content. Scroll snapping blow up my mind. It helped a lot.
dont eliminate its pointer events to get rid of selection. that is user-select: none; and also cursor: default; will keep the cursor the same. and u can still have pointer events if u need to on that element
this is in response to number 10
Very useful video. I stumbled upon this video and helped me solve an issue with text-truncation I was having.
I can't believe I spent so much time doing vertical text the hard way! I was using position: relative & transform: rotate !
wow that smooth scrolling is crazy simple, good job
Thumbsed-up bc you got me w the clickbait title and you telling me to deal w it w the zoom in made me cackle lolololol
💯 cool stuff, I knew one of the trick but I enjoy to see your info, thanks
Glad i found this video, thanks man! on my 13years of web development still there are tons of things that I never knew.
Just yesterday I also posted a video about the Top 10 CSS Features you should know and use in 2023.
I was surprised, that we only got 3 points in common... 😲
And as usual: Great Intro 😄👍 Keep it up buddy!
This video is AMAZING. So many cool tricks! I think I need more of these kind of videos.
The object-fit property can also be used to shrink the image in its box, so that all of the image can be visible without aspect ratio distortion!
How
Thank you for this video and that very useful tips! From this list I know only gap and have learned using it as much as possible. liked and subscribed!
these are really helpful. ill save this video for a time in need. thanks bro.
It really worked for me after I look and try some tutorials, yours is the one that worked. Owe you a lot.
Nice compilation 👍
Also, Number 9: Object-fit can also be achieved with
.box {
background-image:url(car.png);
background-size: cover;
}
Same as object fit, it covers the width and height of its parent element.
That's true, but the issue in your case is that you can't add an alt attribute to the image because it's a background image.
true, but a lot of times you work with websites where you cant just replace img with background, and in that case, object-fit is godsent
in most cases you wanna avoid background image if possible, since you cant add alt text, so if people are using accessibility options like a narrator, and your image is there to add context, youre making your website less usable for people with certain accessibility needs.
background image is fine for things like gradients or other purely cosmetic images, but once they have a functional reason to be there, you wanna use the img element so that people who needs accessibility options, can also get context from them.
@@SirZyPA that's something I'll have to keep in mind always. Thank you.
you can use transform values without transform
example:
scale: -1;
rotate: 180deg;
.
.
.
this is supported by chrome only for now
@@siema32 yes, i hope it will be supported from all browsers sooner because it's so helpfull
I love the last part with the gradient animation text im gonna have to steal that idea my friend great work
Instead of using pointer-events: none; to get rid of user selection,
You can use user-select: none;
ps:
Thank You, for your Amazing work Ed.
pointer-events also gets rid of other cursor actions like hover, right click, etc
@@darom_96
Wouldn't that hide the text though?
Also only needs setting on a parent div to get rid of selection on all child divs. Seen people who put it on everything, no need to bloat your code
Or even better, both.
also "cursor: default"
Just to add on number 9: Object-fit is best used with object-position
If you want to use semantic HTML for a button, but you don't want all the browsers to add the default styling for it, just do all: unset; and it will reset all the default styling, no matter the element.
thank you! 🙌
I love how natural you are in your video
you have my sub
Love these!
I've used a good few of these but the other ones are new to me. Thanks for these!!
If you want to get rid of selection then you can use "user-select: none", but using "pointer-events: none" is not a good idea since you may need to capture the click event on that node in the future.
love the new video quality man!!!
with pointer-events: none you are suppressing all the events on that element. So the element exists there but no click events or mousemove events are triggered in Javascript. This makes it super handy when creating an overlay that covers the entire page, cuz the events can pass through when the overlay is inactive
Using pointer-events to make an item non-interactive is a bit... Well I'd say it's not the best approach. You should handle your event logic in js, exclude an element from it. Mixing CSS into the logic of interaction seems to me like a workaround.
Thank you, I was wondering what the difference between pointer events and user-select: none; was.
Knew them all but had a great time anyway! Subscribed!
Great Job 👏 I like your style, you are unique!
What actually disable selection is user-select property. Pointer-events property is disable any pointer interaction for this DOM node - hover, click, drag, etc - so you pointer can 'hover' over elements which lay below element with this property. But user-select simply disallow you to select text/image from selecting it on the page and still blocks 'hover'ing elements below it.
In addition to the resize thing, you can set a min-width/min-height and a max-width/max-height to set boundries
Great video! Could I ask, what was the vscode extension you were using that showed all the parameters for the animation property (timing-function, etc)
It wasn't an extension,
If you use the auto complete for the animation property it will write all the option as placeholder
Super cool video - please do more of these!
Resize both can be used to open something. If u have a container position fixed with a lower z-index you can resize both a small div with and arrow and once you resize it you can see hidden text or something
This effect sounds really cool, but I'm not sure I understand how to do it from your description. You are saying something is hiding behind the background but gets revealed when you resize the foreground box on top of it?
I keep coming back to this video, awesome tips
My favourite css trick for making unique css is watching your videos XD
you are becoming more comedic and sarcastic which is great.
There is no word better than AWESOME to describe this video. Thank you so much for sharing so amazing knowledge.
Unreal! Thanks King Edward of Development IV
Great stuff! Thanks for making this!
Man, Ed been long time watching back your course videos..... Good to see the excitement and cool work of yours continuing consistently
I love your ever happy vibe. Great video too.
you have been so useful during my html learning
I knew everything except scroll snap. Glad I watched it.
Very simple, very short and very usefull, I Like it.
Very good tips, thank you for sharing this kind of knowledge.
Very nice... Something new I learned today.. 👍Thanks a lot sir😊just ultimate👏
when you type in animation at 12:01 then it shows the parameters you can potentially type in . What extension does that?
This is so useful, thank you very much!
Your positive energy is uplifting
Thank you Ed, I am close to become front end developer. 💥💥💥
i thought you would have added "columns" to this list. extremely useful piece of code to get an "insta" layout.
Man love the videos keep going ❤💪🏽
Just started learning front-end on bootcamp and this video is so cool and makes me wanna use all these tricks
12:07 What's the extension used to get that previous instructions/recomendations?
Whole lot of cool stuff. Appreciated
Very helpful video.
Thank you🥰!
Found some new ones here, great tips!
Great content man, you explain everything in a way thats easily understood and show plenty of visuals. My go to source for all things coding related!
The one about resizing a box helps me a lot! Thank you!
Cool video man! I used 3 of these at work today what were the odds 🤣🤣
nice tips, useful and to the point, thanks!
If you want to get to know more great CSS Features: Just yesterday I also posted a video about the Top 10 CSS Features you should know and use in 2023 ... 😉
great stuff dude and as you said in starting : I used 90% tricks shown in this video. I thaght that I know nothing but after thi video I have a good feeling that i am not a bad coder . Inshort you give me my confidence back. otherwise people always bully me that I know nothing much but many time I saved thier work by using such tricks. yet they did not acknowledge me and I was feeling like a looser. But you boost up my moraaaaaaal dude 👍
Really cool stuff. Thank you very much!
Really cool tips. Thanks.
Thanks! The text gradient styling is super cool. I already found a use for it!
This was so helpful!! Thank you
Really cool, I haven't known any of these!
My favorite one liner would be
white-space: nowrap;
It prevents text from wrapping to the container size, and is very useful with titles
Hello dev Ed! I really enjoyed your react portfolio website course with TailwindCSS. I'm almost done with mine and I'm so glad I found your videos
This is such a great resource. Cheers
I was thinking of watching flex tutorial, just to add the gap, but this video saved my time
Truncate is awesome!! i was implementing it with react(js) before now i'll do it css Thanks Ed
Can't believe I didn't know about flex-gap! Very helpful and honestly would have saved me lots of frustration
Very useful and cool stuff..thank you so much
Hey Ed how are you doing? Thank you for another great video!
That's great
thank you
This is really helpful
Thanks Guy
Good video mate as per!
The only one I didn't know was Text Gradients. Only ever used as a background Image.
Grid min-max auto fill! I can’t remember the exact syntax off the top of my head but I have it saved as a template… perfectly responsive even grid columns every time!
Gap is one of the things I learned about early on with Grid, so I just used it with Flex as well and it worked. Yes I used Grid before Flex lol :)
Really good video and very good explanation! 👍✨