CSSRule Table of Contents

feed
  :
  id
    :tag:blogger.com,1999:blog-4843224028361594470
  updated
    :2024-10-24T05:38:31.670-05:00
  category
    (term='Modifying Blogger')
    :
  category
    (term='CSS')
    :
  category
    (term='XHTML')
    :
  category
    (term='Javascript')
    :
  category
    (term='PHP')
    :
  category
    (term='Float')
    :
  category
    (term='Website Design')
    :
  category
    (term='Beginner')
    :
  category
    (term='Styling a Page')
    :
  category
    (term='Internet')
    :
  category
    (term='CSS Syntax')
    :
  category
    (term='Padding and Margins')
    :
  category
    (term='Photoshop')
    :
  category
    (term='Background Property')
    :
  category
    (term='Fonts and Text')
    :
  category
    (term='Relative Positioning')
    :
  category
    (term='CSS Tutorials')
    :
  category
    (term='HTML')
    :
  category
    (term='NodeJS')
    :
  category
    (term='li')
    :
  category
    (term='ul')
    :
  category
    (term='Absolute Positioning')
    :
  category
    (term='Art')
    :
  category
    (term='Layout')
    :
  category
    (term='MySQL')
    :
  category
    (term='Sailing')
    :
  category
    (term='The Flow')
    :
  category
    (term='Apache')
    :
  category
    (term='Floating')
    :
  category
    (term='phpMyAdmin')
    :
  category
    (term='CSS Zen Garden')
    :
  category
    (term='Class')
    :
  category
    (term='Fluid Rose for Zen Garden')
    :
  category
    (term='Multi-Column Layout')
    :
  category
    (term='MySpace')
    :
  category
    (term='MySpace Layout Tutorials')
    :
  category
    (term='Blog Software')
    :
  category
    (term='Cufon')
    :
  category
    (term='Godaddy')
    :
  category
    (term='Google Chrome')
    :
  category
    (term='Opacity')
    :
  category
    (term='Positioning Elements')
    :
  category
    (term='Selectors')
    :
  category
    (term='Server')
    :
  category
    (term='background')
    :
  category
    (term='span')
    :
  category
    (term='Adobe Photoshop Tutorials')
    :
  category
    (term='Life')
    :
  category
    (term='Positioning Context')
    :
  category
    (term='Sprite')
    :
  category
    (term='background-image')
    :
  category
    (term='Blockquotes')
    :
  category
    (term='Browser Internals')
    :
  category
    (term='C++')
    :
  category
    (term='Computing News')
    :
  category
    (term='DIV')
    :
  category
    (term='Drop Cap')
    :
  category
    (term='Image Grid')
    :
  category
    (term='Linux')
    :
  category
    (term='Positioning')
    :
  category
    (term='Specificity')
    :
  category
    (term='img')
    :
  category
    (term='jQuery')
    :
  category
    (term='z-index')
    :
  category
    (term='Block Element')
    :
  category
    (term='Blogspot')
    :
  category
    (term='Cascade')
    :
  category
    (term='Classes and IDs')
    :
  category
    (term='Descendants')
    :
  category
    (term='Express')
    :
  category
    (term='Google')
    :
  category
    (term='HTTP')
    :
  category
    (term='Inline Element')
    :
  category
    (term='TCP/IP')
    :
  category
    (term='Ubuntu')
    :
  category
    (term='Unordered Lists')
    :
  category
    (term='a href')
    :
  category
    (term='background-position')
    :
  category
    (term='font-face')
    :
  category
    (term='multiple class')
    :
  category
    (term='width')
    :
  category
    (term='3 Column Layout')
    :
  category
    (term='Array')
    :
  category
    (term='Auto Margins')
    :
  category
    (term='Background Positioning')
    :
  category
    (term='CSS 3')
    :
  category
    (term='CSS Bar Graphs')
    :
  category
    (term='CSS Framework')
    :
  category
    (term='Captioning')
    :
  category
    (term='Code Igniter')
    :
  category
    (term='Compiler')
    :
  category
    (term='DNS')
    :
  category
    (term='Dave Shea')
    :
  category
    (term='Descendant Selector')
    :
  category
    (term='Firefox')
    :
  category
    (term='Floating IMG element')
    :
  category
    (term='Floats')
    :
  category
    (term='Footer')
    :
  category
    (term='Funny')
    :
  category
    (term='Google Webfonts')
    :
  category
    (term='Graph')
    :
  category
    (term='HTML Blockquote')
    :
  category
    (term='HTML5')
    :
  category
    (term='ID')
    :
  category
    (term='IP Address')
    :
  category
    (term='Image Captioning Tool')
    :
  category
    (term='Image Replacement')
    :
  category
    (term='Margin')
    :
  category
    (term='Ordered Lists')
    :
  category
    (term='RSS Feed')
    :
  category
    (term='React')
    :
  category
    (term='Recipes')
    :
  category
    (term='Regular Expression')
    :
  category
    (term='Relational Database')
    :
  category
    (term='SSH')
    :
  category
    (term='SSL')
    :
  category
    (term='Search')
    :
  category
    (term='Sprites')
    :
  category
    (term='Webkit')
    :
  category
    (term='a:hover')
    :
  category
    (term='app.js')
    :
  category
    (term='background-color')
    :
  category
    (term='border')
    :
  category
    (term='clear')
    :
  category
    (term='display')
    :
  category
    (term='line-height')
    :
  category
    (term='localhost')
    :
  category
    (term='960 Grid')
    :
  category
    (term=':before')
    :
  category
    (term='Apache Server on Local Environment')
    :
  category
    (term='Attribute Selectors')
    :
  category
    (term='Author Style Sheet')
    :
  category
    (term='Blogger Template')
    :
  category
    (term='Blueprint')
    :
  category
    (term='C')
    :
  category
    (term='CSS Zen Garden Dave Shea')
    :
  category
    (term='Caching')
    :
  category
    (term='Centering Images')
    :
  category
    (term='Digg')
    :
  category
    (term='Door County')
    :
  category
    (term='Embedded Styles')
    :
  category
    (term='Eric Meyer')
    :
  category
    (term='FOUT')
    :
  category
    (term='FTP/SFTP Clients')
    :
  category
    (term='FileZilla')
    :
  category
    (term='Flash of Unstyled Text')
    :
  category
    (term='Flexbox')
    :
  category
    (term='Floating LI element')
    :
  category
    (term='Friends of Apache')
    :
  category
    (term='Getty Museum')
    :
  category
    (term='Google AdSense')
    :
  category
    (term='GraublauWeb')
    :
  category
    (term='HTML Table')
    :
  category
    (term='Happy 4th')
    :
  category
    (term='Horizontal Bar Graph')
    :
  category
    (term='How CSS Works')
    :
  category
    (term='IE')
    :
  category
    (term='IE6')
    :
  category
    (term='Inheritance')
    :
  category
    (term='Input')
    :
  category
    (term='Internet Explorer')
    :
  category
    (term='JS Map Method')
    :
  category
    (term='Javascript Closures')
    :
  category
    (term='LAMP')
    :
  category
    (term='Microsoft Word')
    :
  category
    (term='Navigation Menu')
    :
  category
    (term='Negative Margin')
    :
  category
    (term='Network Address Translation')
    :
  category
    (term='Notepad++')
    :
  category
    (term='PHP count')
    :
  category
    (term='PHP foreach')
    :
  category
    (term='Parsing RSS Feed')
    :
  category
    (term='Private Key')
    :
  category
    (term='Protocol')
    :
  category
    (term='Pullqutoes')
    :
  category
    (term='REST API')
    :
  category
    (term='RFC')
    :
  category
    (term='Routing')
    :
  category
    (term='SELECT')
    :
  category
    (term='SEO')
    :
  category
    (term='Search Engine')
    :
  category
    (term='Secure Shell')
    :
  category
    (term='Shared Hosting')
    :
  category
    (term='Software Testing')
    :
  category
    (term='Technorati')
    :
  category
    (term='The Cascade')
    :
  category
    (term='The Site')
    :
  category
    (term='Tools')
    :
  category
    (term='Transparency')
    :
  category
    (term='Tweet')
    :
  category
    (term='Typekit')
    :
  category
    (term='Unordered List')
    :
  category
    (term='WIFI')
    :
  category
    (term='XAMPP')
    :
  category
    (term='background-repeat')
    :
  category
    (term='border-radius')
    :
  category
    (term='box-shadow')
    :
  category
    (term='first-child')
    :
  category
    (term='float next to ul')
    :
  category
    (term='font-style')
    :
  category
    (term='height')
    :
  category
    (term='inside')
    :
  category
    (term='left')
    :
  category
    (term='list marker')
    :
  category
    (term='list-style-position')
    :
  category
    (term='list-style-type')
    :
  category
    (term='markup')
    :
  category
    (term='overflow')
    :
  category
    (term='server side')
    :
  category
    (term='ssh-keygen')
    :
  category
    (term='td')
    :
  category
    (term='text-indent')
    :
  category
    (term='th')
    :
  category
    (term='top')
    :
  category
    (term='transform: rotate( )')
    :
  category
    (term='visibility')
    :
  category
    (term='$geo_status')
    :
  category
    (term='-moz-border-radius')
    :
  category
    (term='-moz-linear-gradient')
    :
  category
    (term='-webkit-gradient')
    :
  category
    (term='400 BC')
    :
  category
    (term='9-slice Scaling')
    :
  category
    (term=':after')
    :
  category
    (term='@keyframes')
    :
  category
    (term='API')
    :
  category
    (term='ASCII')
    :
  category
    (term='Abduction by Hades')
    :
  category
    (term='Abiword')
    :
  category
    (term='Acrolith')
    :
  category
    (term='Adjusting Blogger Profile Image')
    :
  category
    (term='Adobe')
    :
  category
    (term='Aidone Museum')
    :
  category
    (term='Angular')
    :
  category
    (term='Anti-Virus Software')
    :
  category
    (term='Assignment by Reference')
    :
  category
    (term='Atom')
    :
  category
    (term='BNF Notation')
    :
  category
    (term='Backup')
    :
  category
    (term='Backward Slash')
    :
  category
    (term='Bind')
    :
  category
    (term='Bing')
    :
  category
    (term='Bob Parsons')
    :
  category
    (term='Browser Default Style Sheet')
    :
  category
    (term='Browser Wars')
    :
  category
    (term='Browsers')
    :
  category
    (term='Byte')
    :
  category
    (term='C#')
    :
  category
    (term='CDN')
    :
  category
    (term='CEO')
    :
  category
    (term='CPU')
    :
  category
    (term='CREATE TABLE')
    :
  category
    (term='CSR')
    :
  category
    (term='CSS 3.0 Gradient')
    :
  category
    (term='CSS 3.0 Multiple Background Images')
    :
  category
    (term='CSS 3.0 Transforms')
    :
  category
    (term='CSS 3.0 last-child')
    :
  category
    (term='CSS Content Property')
    :
  category
    (term='CSS Grid')
    :
  category
    (term='CSS Layout')
    :
  category
    (term='CSS Quote Property')
    :
  category
    (term='CSS Resets')
    :
  category
    (term='CSS visibility')
    :
  category
    (term='CSS3')
    :
  category
    (term='CSS3.0')
    :
  category
    (term='Cache')
    :
  category
    (term='Calcite Rind')
    :
  category
    (term='Callback Function')
    :
  category
    (term='Caltech')
    :
  category
    (term='Canvas')
    :
  category
    (term='Chrome Developer')
    :
  category
    (term='Cloud Computing')
    :
  category
    (term='Cloud Hosting')
    :
  category
    (term='CodeEval')
    :
  category
    (term='Color Swatch')
    :
  category
    (term='Constructor Function')
    :
  category
    (term='Content Delivery Network')
    :
  category
    (term='Content-type')
    :
  category
    (term='Cookies')
    :
  category
    (term='Copyright Symbol')
    :
  category
    (term='Creating MySQL Tables')
    :
  category
    (term='Cron Job')
    :
  category
    (term='Crop an Image Using CSS')
    :
  category
    (term='Cross Browser Platforms')
    :
  category
    (term='Curl')
    :
  category
    (term='Cypress')
    :
  category
    (term='DOM')
    :
  category
    (term='DSL')
    :
  category
    (term='Data Cells')
    :
  category
    (term='Data Recovery')
    :
  category
    (term='Dedicated Server')
    :
  category
    (term='Definition Lists')
    :
  category
    (term='Demeter')
    :
  category
    (term='Developer')
    :
  category
    (term='Development Cycle')
    :
  category
    (term='Diagonal Menu')
    :
  category
    (term='Digital Ocean')
    :
  category
    (term='Disk Drill')
    :
  category
    (term='Disk Partitions')
    :
  category
    (term='Docker')
    :
  category
    (term='Domain Name Server')
    :
  category
    (term='Domain Registrar')
    :
  category
    (term='Dot Notation')
    :
  category
    (term='Drop Shadow')
    :
  category
    (term='Dual Stack')
    :
  category
    (term='DuckDuckGo')
    :
  category
    (term='E Ink')
    :
  category
    (term='Eclipse')
    :
  category
    (term='Editor')
    :
  category
    (term='Encryption')
    :
  category
    (term='Escaping Characters in CSS')
    :
  category
    (term='Ethernet')
    :
  category
    (term='Expand Widget Templates')
    :
  category
    (term='External Enclosure')
    :
  category
    (term='External Stye Sheets')
    :
  category
    (term='FAT32')
    :
  category
    (term='Fading Image')
    :
  category
    (term='Faux Columns')
    :
  category
    (term='Favicon')
    :
  category
    (term='Firefox Personas')
    :
  category
    (term='Flash')
    :
  category
    (term='Flat Design Aesthetic')
    :
  category
    (term='Fleischman Collection')
    :
  category
    (term='Fonts')
    :
  category
    (term='Foreign Keys')
    :
  category
    (term='Form Element')
    :
  category
    (term='Form Tag')
    :
  category
    (term='Forms')
    :
  category
    (term='Framing an Image')
    :
  category
    (term='Frankfurt Am Main')
    :
  category
    (term='Functions')
    :
  category
    (term='Gamify')
    :
  category
    (term='Google API')
    :
  category
    (term='Google Font')
    :
  category
    (term='Google GeoCoding')
    :
  category
    (term='Google Maps')
    :
  category
    (term='Google Search')
    :
  category
    (term='Grep')
    :
  category
    (term='Grid')
    :
  category
    (term='HTML Elements')
    :
  category
    (term='HTML Forms')
    :
  category
    (term='HTML5 Rocks')
    :
  category
    (term='HTTP Daemon')
    :
  category
    (term='HTTP GET')
    :
  category
    (term='HTTP Headers')
    :
  category
    (term='HTTP Request')
    :
  category
    (term='HTTP Request Headers')
    :
  category
    (term='HTTP Response Headers')
    :
  category
    (term='HTTPS')
    :
  category
    (term='Haas Neue Grotesk')
    :
  category
    (term='Hardware')
    :
  category
    (term='Headings')
    :
  category
    (term='Helvetica')
    :
  category
    (term='Hex Codes')
    :
  category
    (term='High Level Design')
    :
  category
    (term='History')
    :
  category
    (term='Hollow Photoshop Circles')
    :
  category
    (term='IDE')
    :
  category
    (term='IE Compatibility Mode')
    :
  category
    (term='IE Punches')
    :
  category
    (term='IETF.org')
    :
  category
    (term='INSERT INTO')
    :
  category
    (term='IP')
    :
  category
    (term='IP Header')
    :
  category
    (term='IP Packet')
    :
  category
    (term='IP Packets')
    :
  category
    (term='IP Route')
    :
  category
    (term='IPC')
    :
  category
    (term='IPv4')
    :
  category
    (term='IPv6')
    :
  category
    (term='Image Captioning')
    :
  category
    (term='Inline-block')
    :
  category
    (term='Inserting MySQL Records')
    :
  category
    (term='Inserting Records into Database')
    :
  category
    (term='Intermediate')
    :
  category
    (term='JS Join Method')
    :
  category
    (term='JS Spread Operator')
    :
  category
    (term='JSON')
    :
  category
    (term='JSX')
    :
  category
    (term='JW Player')
    :
  category
    (term='Java')
    :
  category
    (term='Javascript Apply')
    :
  category
    (term='Javascript Bind')
    :
  category
    (term='Javascript Objects')
    :
  category
    (term='Javascript arguments')
    :
  category
    (term='Kindle')
    :
  category
    (term='LMS')
    :
  category
    (term='LTI')
    :
  category
    (term='Latency')
    :
  category
    (term='Loading Times')
    :
  category
    (term='MVCS')
    :
  category
    (term='MYSQLI_ASSOC')
    :
  category
    (term='Margin Collapsing')
    :
  category
    (term='Margins between Floated and Cleared Elements')
    :
  category
    (term='Marion True')
    :
  category
    (term='Markdown')
    :
  category
    (term='Meddon')
    :
  category
    (term='Menu')
    :
  category
    (term='Microsoft')
    :
  category
    (term='Microsoft Security Essentials')
    :
  category
    (term='Mobile Device Testing on Chrome')
    :
  category
    (term='Mondrian')
    :
  category
    (term='MongoDB')
    :
  category
    (term='Multiple Backgrounds')
    :
  category
    (term='NPM')
    :
  category
    (term='NTFS')
    :
  category
    (term='Nameserver')
    :
  category
    (term='Net Neutrality')
    :
  category
    (term='Networking Driver')
    :
  category
    (term='New Beginnings')
    :
  category
    (term='NexStar')
    :
  category
    (term='Object Literal')
    :
  category
    (term='Objects')
    :
  category
    (term='Octal Notation')
    :
  category
    (term='Oracle')
    :
  category
    (term='Order')
    :
  category
    (term='Origin')
    :
  category
    (term='PHP Array of Arrays')
    :
  category
    (term='PHP Short Tags')
    :
  category
    (term='PHP Syntax')
    :
  category
    (term='PHP Variable Dump')
    :
  category
    (term='PHP empty')
    :
  category
    (term='PHP if')
    :
  category
    (term='PHP in_array')
    :
  category
    (term='PHP sort')
    :
  category
    (term='PNG Format')
    :
  category
    (term='PNG Transparency Files')
    :
  category
    (term='POST')
    :
  category
    (term='PS Find Edges')
    :
  category
    (term='PS Lens Flare')
    :
  category
    (term='PS Mosaic')
    :
  category
    (term='PS Perspective')
    :
  category
    (term='Parallelism')
    :
  category
    (term='Parent-Child Relationship')
    :
  category
    (term='Particular Attribute Selector')
    :
  category
    (term='Period in a Class/ID Name')
    :
  category
    (term='Perl')
    :
  category
    (term='Permissions')
    :
  category
    (term='Permissions Calculator')
    :
  category
    (term='Persephone')
    :
  category
    (term='Peter Paul Rubens')
    :
  category
    (term='Photoshop Action')
    :
  category
    (term='Photoshop Action Palette')
    :
  category
    (term='Photoshop Macro')
    :
  category
    (term='Points of Sail')
    :
  category
    (term='Pop-ups')
    :
  category
    (term='Port Number')
    :
  category
    (term='Primary Keys')
    :
  category
    (term='Programming Languages')
    :
  category
    (term='Promises')
    :
  category
    (term='Pseudo Element')
    :
  category
    (term='Python')
    :
  category
    (term='REGEX')
    :
  category
    (term='RSS')
    :
  category
    (term='Raspberry Pi')
    :
  category
    (term='React Inline Styles')
    :
  category
    (term='Reader Style Sheet')
    :
  category
    (term='Reading')
    :
  category
    (term='Relative Path')
    :
  category
    (term='Reloading Apache')
    :
  category
    (term='Removing Hard Disk in a Laptop')
    :
  category
    (term='Reset')
    :
  category
    (term='Return Statement')
    :
  category
    (term='Rounded Corners')
    :
  category
    (term='Rounding Corners of an Image')
    :
  category
    (term='Router')
    :
  category
    (term='SFTP')
    :
  category
    (term='SUDO')
    :
  category
    (term='SWFObject')
    :
  category
    (term='Safari')
    :
  category
    (term='Scope')
    :
  category
    (term='Scrolling Tables')
    :
  category
    (term='Search Engine Optimization')
    :
  category
    (term='Searching RSS Feed')
    :
  category
    (term='Sessions')
    :
  category
    (term='Simple Attribute Selector')
    :
  category
    (term='Size an Image Using CSS')
    :
  category
    (term='Skeuomorphism')
    :
  category
    (term='Software Design')
    :
  category
    (term='Solr')
    :
  category
    (term='Sonet OC3')
    :
  category
    (term='Square Bracket Notation')
    :
  category
    (term='Stu Nicholls')
    :
  category
    (term='StumbleUpon')
    :
  category
    (term='Style Sheets')
    :
  category
    (term='Substring Matching Attribute Selector')
    :
  category
    (term='Symbolic Link')
    :
  category
    (term='Syntax Highlighting')
    :
  category
    (term='Table Layout')
    :
  category
    (term='Tables with Fixed Headings')
    :
  category
    (term='Tantek Celik')
    :
  category
    (term='Teamwork')
    :
  category
    (term='Ternary Statement')
    :
  category
    (term='The Squaire')
    :
  category
    (term='Toshiba R500')
    :
  category
    (term='Transferring Code')
    :
  category
    (term='Transparent Border in Photoshop')
    :
  category
    (term='Truncation')
    :
  category
    (term='Twitter')
    :
  category
    (term='UDP')
    :
  category
    (term='USB Device')
    :
  category
    (term='Ubuntu 10.04')
    :
  category
    (term='Unix')
    :
  category
    (term='Upgrading NodeJS')
    :
  category
    (term='User Style Sheet')
    :
  category
    (term='VPS')
    :
  category
    (term='Value Attribute Selector')
    :
  category
    (term='Venus of Morgantina')
    :
  category
    (term='Version Control System')
    :
  category
    (term='Virtual Host')
    :
  category
    (term='Virtual Private Server')
    :
  category
    (term='WebFontConfig')
    :
  category
    (term='Websites')
    :
  category
    (term='Wet Drapery Style')
    :
  category
    (term='Windows')
    :
  category
    (term='Windows 7')
    :
  category
    (term='Windows Driver')
    :
  category
    (term='XML')
    :
  category
    (term='YUI Grids')
    :
  category
    (term='a2ensite')
    :
  category
    (term='animation-direction')
    :
  category
    (term='animation-duration')
    :
  category
    (term='animation-iteration-count')
    :
  category
    (term='animation-name')
    :
  category
    (term='animationPlayState')
    :
  category
    (term='app.use')
    :
  category
    (term='article')
    :
  category
    (term='aside')
    :
  category
    (term='asynchronous')
    :
  category
    (term='block')
    :
  category
    (term='border-bottom')
    :
  category
    (term='border-image')
    :
  category
    (term='caniuse.com')
    :
  category
    (term='certbot')
    :
  category
    (term='chown')
    :
  category
    (term='column-count')
    :
  category
    (term='column-gap')
    :
  category
    (term='containing block')
    :
  category
    (term='cross-domain')
    :
  category
    (term='display: none')
    :
  category
    (term='display:block;')
    :
  category
    (term='display:block; Cookie Cutter Method')
    :
  category
    (term='display:block; Fonts and Text')
    :
  category
    (term='display:block; display:none')
    :
  category
    (term='document.createElement')
    :
  category
    (term='falsey')
    :
  category
    (term='git')
    :
  category
    (term='github')
    :
  category
    (term='gparted')
    :
  category
    (term='gutter')
    :
  category
    (term='h1')
    :
  category
    (term='h3')
    :
  category
    (term='header')
    :
  category
    (term='hgroup')
    :
  category
    (term='hr')
    :
  category
    (term='httpd.exe')
    :
  category
    (term='id_rsa')
    :
  category
    (term='id_rsa.pub')
    :
  category
    (term='important')
    :
  category
    (term='inline style')
    :
  category
    (term='italic')
    :
  category
    (term='jQuery UI')
    :
  category
    (term='jsfiddle')
    :
  category
    (term='jwplayer')
    :
  category
    (term='last-child')
    :
  category
    (term='let')
    :
  category
    (term='linear-gradient')
    :
  category
    (term='link')
    :
  category
    (term='list-style-image')
    :
  category
    (term='longtailvideo')
    :
  category
    (term='loop')
    :
  category
    (term='media player')
    :
  category
    (term='mime-type')
    :
  category
    (term='moz')
    :
  category
    (term='ms')
    :
  category
    (term='mysqli_connect')
    :
  category
    (term='mysqli_fetch_array')
    :
  category
    (term='mysqli_num_rows')
    :
  category
    (term='mysqli_query')
    :
  category
    (term='nav')
    :
  category
    (term='networking')
    :
  category
    (term='o')
    :
  category
    (term='ol')
    :
  category
    (term='outline:none')
    :
  category
    (term='outside')
    :
  category
    (term='overflow : hidden')
    :
  category
    (term='overflow property')
    :
  category
    (term='overflow: hidden;')
    :
  category
    (term='overflow:auto')
    :
  category
    (term='p')
    :
  category
    (term='p element')
    :
  category
    (term='photo gallery')
    :
  category
    (term='port')
    :
  category
    (term='print_r')
    :
  category
    (term='public key')
    :
  category
    (term='react.createEleement')
    :
  category
    (term='right-margin')
    :
  category
    (term='routes')
    :
  category
    (term='script')
    :
  category
    (term='simpleXML')
    :
  category
    (term='splash image')
    :
  category
    (term='stable treemaps')
    :
  category
    (term='stack frame')
    :
  category
    (term='tbody')
    :
  category
    (term='text-align')
    :
  category
    (term='text-shadow')
    :
  category
    (term='textarea')
    :
  category
    (term='thead')
    :
  category
    (term='this')
    :
  category
    (term='truthy')
    :
  category
    (term='urlencoded')
    :
  category
    (term='var')
    :
  category
    (term='vendor prefix')
    :
  category
    (term='visualization')
    :
  category
    (term='watermark')
    :
  category
    (term='wf-active')
    :
  category
    (term='wf-inactive')
    :
  category
    (term='wf-loading')
    :
  category
    (term='xpath')
    :
  category
    (term='xpath query')
    :
  title
    (type='text')
    :CSS Rule
  subtitle
    (type='html')
    :An interactive reference guide for Cascading Style Sheets - CSS.  Also includes tutorials and information on HTML, PHP, Javascript, Adobe Photoshop and Blogger modifications.
  link
    (rel='http://schemas.google.com/g/2005#feed')
    (type='application/atom+xml')
    (href='http://www.cssrule.com/feeds/posts/default')
    :
  link
    (rel='self')
    (type='application/atom+xml')
    (href='http://www.blogger.com/feeds/4843224028361594470/posts/default?max-results=10')
    :
  link
    (rel='alternate')
    (type='text/html')
    (href='http://www.cssrule.com/')
    :
  link
    (rel='hub')
    (href='http://pubsubhubbub.appspot.com/')
    :
  link
    (rel='next')
    (type='application/atom+xml')
    (href='http://www.blogger.com/feeds/4843224028361594470/posts/default?start-index=11&max-results=10')
    :
  author
    :
    name
      :CSSRule
    uri
      :http://www.blogger.com/profile/08756544695899161347
    email
      :noreply@blogger.com
  generator
    (version='7.00')
    (uri='http://www.blogger.com')
    :Blogger
  entry
    :
    id
      :tag:blogger.com,1999:blog-4843224028361594470.post-4370075561066394314
    published
      :2024-09-26T18:45:00.010-05:00
    updated
      :2024-09-26T18:58:51.623-05:00
    category
      (scheme='http://www.blogger.com/atom/ns#')
      (term='Life')
      :
    title
      (type='text')
      :Cooling Seas
    content
      (type='html')
      :A Cleat<br>[fall morning]<br>© 2024 Copyright www.cssrule.com All Rights Reserved
link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/4370075561066394314/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2024/09/cooling-seas.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/4370075561066394314') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/4370075561066394314') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2024/09/cooling-seas.html') (title='Cooling Seas') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com entry : id :tag:blogger.com,1999:blog-4843224028361594470.post-1571739449120856411 published :2022-11-13T06:05:00.025-06:00 updated :2022-11-16T02:07:47.449-06:00 category (scheme='http://www.blogger.com/atom/ns#') (term='stable treemaps') : category (scheme='http://www.blogger.com/atom/ns#') (term='visualization') : title (type='text') :Stable Treemaps content (type='html') :
Thinking of implementing a stable tree map algorithm as per Sonda, Speckmann, and Verbeek in this article.

What this is saying is when the data or the size of the window changes, the tree map could look very different. Things could move drastically within the map. Something that was on the lower left could now be in the upper right kind of thing. This is called instability. But with the stable tree map, as the data or the window size changes, things stay relatively close to where they were previously. It also looks like their approach will help with aspect ratio problems if you have any.

Image by Sonda • Speckmann • Verbeek • Eindhoven University of Technology

link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/1571739449120856411/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2022/11/stable-treemaps.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/1571739449120856411') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/1571739449120856411') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2022/11/stable-treemaps.html') (title='Stable Treemaps') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com entry : id :tag:blogger.com,1999:blog-4843224028361594470.post-7255522842046962462 published :2022-11-12T12:24:00.015-06:00 updated :2022-12-15T11:44:13.225-06:00 category (scheme='http://www.blogger.com/atom/ns#') (term='Cypress') : category (scheme='http://www.blogger.com/atom/ns#') (term='Software Testing') : title (type='text') :Cypress content (type='html') :
Cypress is a test automation framework for testing Web Applications. It is implemented in Javascript and part of the framework runs inside the same browser where the application under test is being executed. Cypress executes your test scripts inside that same browser too. That architecture gives Cypress a lot of power for interacting with the pages of the application and puts it into a position to interact with backend API calls as well. It also means all your test scripts are written in Javascript.

Image: Aleksey Boev, CC-BY-SA 3.0

link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/7255522842046962462/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2022/11/cypress.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/7255522842046962462') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/7255522842046962462') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2022/11/cypress.html') (title='Cypress ') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com entry : id :tag:blogger.com,1999:blog-4843224028361594470.post-3960139748519981589 published :2022-08-13T13:37:00.027-05:00 updated :2022-08-15T05:51:39.148-05:00 category (scheme='http://www.blogger.com/atom/ns#') (term='document.createElement') : category (scheme='http://www.blogger.com/atom/ns#') (term='Javascript') : category (scheme='http://www.blogger.com/atom/ns#') (term='JS Map Method') : category (scheme='http://www.blogger.com/atom/ns#') (term='JSX') : category (scheme='http://www.blogger.com/atom/ns#') (term='React') : category (scheme='http://www.blogger.com/atom/ns#') (term='react.createEleement') : title (type='text') :How JSX Gets Compiled to Javascript content (type='html') :
With JSX, the compiler turns each tag into a function call, so a <div> tag becomes something like a call to createElement() that creates the div in the DOM. It doesn't directly call document.createElement, instead it's calling React's version of createElement, called: React.createElement().
Here is an example:
<div>Hello!</div>
Compiles to:
React.createElement("div", null, "Hello!");
You can try this out for yourself at: https://babeljs.io/repl

Just type in your JSX in the left hand pane, and you'll see the compiled code to the right. Furthermore, the child nodes of a tag get turned into additional parameters to React.createElement.
Example:
<div>
  <h1>Hello!</h1>
  <p>My paragraph.</p>
</div>
Compiles to:
React.createElement(
  "div",
  null,
  React.createElement("h1", null, "Hello!"),
  React.createElement("p", null, "My paragraph.")
);
This explains why you can only write a subset of Javascript within JSX. Because you are really writing code that can go within the argument list to the createElement function call. Some things work within an argument list and some don't. A regular if statement won't work. You'll get a syntax error at the "if":
let showParagraph = false;
React.createElement(
  "div",
  null,
  React.createElement("h1", null, "Hello!"),
  if (showParagraph) { React.createElement("p", null, "My paragraph.") }  // Syntax Error
);
But a ternary operator will work just fine:
let showParagraph = false;
React.createElement(
  "div",
  null,
  React.createElement("h1", null, "Hello!"),
  showParagraph ? React.createElement("p", null, "My paragraph.") : ''
);
And a short circuit evaluation will work as well:
let showParagraph = false;
React.createElement(
  "div",
  null,
  React.createElement("h1", null, "Hello!"),
  showParagraph && React.createElement("p", null, "My paragraph.")
);
Also, React will accept arrays of created elements as parameters:
const paragraphs = [
  'My first paragraph',
  'The second paragraph',
];
  <div>
  <h1>All My Paragraphs</h1>
  { paragraphs.map(txt => <p>{txt}</p>) }
</div>
Compiles to:
const paragraphs = ["My first paragraph", "The second paragraph"];

React.createElement(
    "div",
    null,
    React.createElement("h1", null, "All My Paragraphs"),
    paragraphs.map((txt) => React.createElement("p", null, txt))
);
This also explains why you generally don't put semi-colons into JSX: It's because you don't put semi-colons into function argument lists when calling a function, and with JSX, you are really calling a function with every tag name.

Another thing to note is that a sequence of JSX code gets compiled to a single expression (i.e. a function call to React.createElement with a bunch of parameters). That means if you have an arrow function that's returning JSX code, you don't need to write it with surrounding curly braces and a return statement. So the following:
const topics = [
  {heading: 'First Topic', text:'My first topic text'},
  {heading: 'Second Topic', text: 'The second topic text'},
];
{ topics.map(t => {
  return <div>
            <h2>{t.heading}</h2>
            <p>{t.text}</p>
         </div>
  })
}
Can be re-written as:
const topics = [
  {heading: 'First Topic', text:'My first topic text'},
  {heading: 'Second Topic', text: 'The second topic text'},
];
{ topics.map(t => <div>
                    <h2>{t.heading}</h2>
                    <p>{t.text}</p>
                  </div>
  )
}
Which compiles to:
const topics = [{
  heading: 'First Topic',
  text: 'My first topic text'
}, {
  heading: 'Second Topic',
  text: 'The second topic text'
}];
{
  topics.map(t => React.createElement(
	"div", 
	null, 
	React.createElement("h2", null, t.heading), 
	React.createElement("p", null, t.text)
  ));
}
The key thing to note here is that the outer div becomes a function call, and all the other markup within that div become paremeters to that single, outer function call. The h2 and p elements do generate function calls to React.createElement, but those calls are done as part of the parameter list to the outer function (the div).

The result is that we have just one outer function call, with everything else being a parameter to that function. So, we have a single expression.

However, if you need to write more complex logic that can't be written as a single expession in the arrow function, then you'll have to put the curly braces and return statement back in. For example:
const topics = [
  {heading: 'First Topic', text:'My first topic text'},
  {heading: 'Second Topic', text: 'The second topic text'},
];
{ topics.map(t => {
    if (t.heading === 'Second Topic') {
      t.text += ' (this is extra text for the second topic)';
    }
    return <div>
              <h2>{t.heading}</h2>
              <p>{t.text}</p>
           </div>
    }
  )
}
Here the extra "if" statement added to the arrow function means the function body is no longer a single expression, so we need to wrap the function body in curly braces, and put in the return statement.

Image: Joshua Sortino, CC-BY-SA 3.0

link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/3960139748519981589/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2022/08/how-jsx-gets-compiled-to-javascript.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/3960139748519981589') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/3960139748519981589') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2022/08/how-jsx-gets-compiled-to-javascript.html') (title='How JSX Gets Compiled to Javascript') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com entry : id :tag:blogger.com,1999:blog-4843224028361594470.post-2213621330365190327 published :2022-08-11T10:50:00.023-05:00 updated :2022-08-20T14:52:55.034-05:00 category (scheme='http://www.blogger.com/atom/ns#') (term='React') : category (scheme='http://www.blogger.com/atom/ns#') (term='React Inline Styles') : title (type='text') :Using Inline Styles with React content (type='html') :Today I was adding an inline style to a React element and tried to set it from a string like this:
<div style={"background-image: url("+imgUrl+")"}>  </div>
Turns out that does not work. React requires that style attributes are set using objects. So the correct way to do this is:

<div> style={{backgroundImage: "url("+imgUrl+")"}}  </div>
After the equal sign the first open curly takes us into Javascript mode, and the second open curly is the beginning of an object literal. All style property names must be camelcase with no dashes.

Another thing I needed to do was conditionally add a class to an element based on a state variable. Here's how that turned out:

<h2> className={visible ? 'hilited' : ''} </h2>
The state variable is called "visible" and it's either true or false. When true I get the class of hilited, otherwise no class name. link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/2213621330365190327/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2022/08/using-inline-styles-with-react.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/2213621330365190327') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/2213621330365190327') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2022/08/using-inline-styles-with-react.html') (title='Using Inline Styles with React') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com entry : id :tag:blogger.com,1999:blog-4843224028361594470.post-1953013985168595111 published :2022-08-11T08:39:00.019-05:00 updated :2022-08-11T10:04:24.286-05:00 category (scheme='http://www.blogger.com/atom/ns#') (term='MongoDB') : title (type='text') :MongoDB content (type='html') :
If you are deploying MongoDB on your own servers you need to ensure high availability and data protection. That means you need to run it in a cluster of at least three nodes. You then have to make sure Mongo is configured to replicate data across the nodes.

The nodes should be in different availability zones or different data centers to protect against downtime and data loss.

Image: W. Brandt,CC-BY-SA 3.0

link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/1953013985168595111/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2022/08/mongodb.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/1953013985168595111') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/1953013985168595111') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2022/08/mongodb.html') (title='MongoDB') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com entry : id :tag:blogger.com,1999:blog-4843224028361594470.post-5941663920451607509 published :2022-07-31T09:41:00.027-05:00 updated :2022-12-15T14:05:42.411-06:00 category (scheme='http://www.blogger.com/atom/ns#') (term='Data Recovery') : category (scheme='http://www.blogger.com/atom/ns#') (term='Disk Drill') : category (scheme='http://www.blogger.com/atom/ns#') (term='Grep') : category (scheme='http://www.blogger.com/atom/ns#') (term='Perl') : category (scheme='http://www.blogger.com/atom/ns#') (term='Regular Expression') : category (scheme='http://www.blogger.com/atom/ns#') (term='Sailing') : title (type='text') :2 Years of My Life Truncated, Then Recovered content (type='html') :

I had started recording data about my daily activities (workouts, etc) a few years ago. At first, I didn't think of it as anything serious but as time passed by, I had accumulated over two years of data/notes in this simple text file.

Disaster struck a week ago on an early Sunday morning.

I had just woken up and I was saving my notes file, but I was low on disk space so the write was not completing and the computer seemed to be hung. Wanting to get rid of the dreaded spinning beachball, I powered off and rebooted. After the reboot, I found that the file was truncated to zero bytes. In disbelief, I scrolled up and down. Nothing. All content was lost.

By then, I was fully awake.

I back up my drives infrequently but in my defense, the most important stuff on my computers happens to be code. All my code is saved not just on my local machines, but to Github and also to external servers, so additional backups are not super critical.

When I found out that the backup copies that I had made for this particular file were missing seven months worth of data, my heart sank. I did not have a recent backup copy. Two words, "Time Machine" stung.

I had to get this file back.

I stopped using the computer so that any recoverable data would not be overwritten with new files. On another computer, I downloaded a tool called "Disk Drill" to a USB drive and then ran it from USB on the machine with the lost file.

Disk Drill says that the free version will show you what can be recovered, then you pay something north of $100 to get the version that will recover the data.

As it turned out that wasn't true. Disk drill reported that it could recover some files, but when I went to view what would be recovered, it said I had to pay for the full version in order to do that.

I decided to take another approach.

When a file is deleted (or truncated in my case), the data that was in that file still exists on the disk. The operating system's filesystem doesn't view that data as part of any file. Instead, it views those sectors of the disk as unallocated and fair game for writing new data to. But if you can avoid writing over them, and have a way to access the raw data from the disk, then you can still recover some or all of the data.

So as a next step, I booted the machine into recovery mode so that there would be minimal activity writing to the disk. I then ran the following command:

cat /dev/disk0s2 | perl -pe 's/[^[A-Za-z0-9\n\r \/,#i():.?*]//g' | grep -A15000 "DO NOT FORGET" >> /Volumes/THUMB/recover2.txt

The cat command reads the entire disk device content and sends it to stdout. I piped that into a small perl script that filters out non-printable characters.

I piped that output into a grep command that looks for some text I knew was at the very beginning of the lost file. I executed grep with the -A15000 option to tell it to print the next 15000 lines after the matching text, which I knew was long enough to cover the length of my lost file.

Finally, I directed the output of grep to be stored on a USB thumb drive, since I didn't want any writes to the main disk.

This ran for more than 24 hours, but in the end it recovered several versions of my file, each missing a small amount of data at the end. In the most complete version of the file, I was missing only 4 days worth of data (the entire file covers more than two year's worth of entries).

Image: My own

link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/5941663920451607509/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2022/07/2-years-of-my-life-truncated-then.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/5941663920451607509') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/5941663920451607509') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2022/07/2-years-of-my-life-truncated-then.html') (title='2 Years of My Life Truncated, Then Recovered') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com entry : id :tag:blogger.com,1999:blog-4843224028361594470.post-4977383989660623193 published :2022-07-09T06:14:00.026-05:00 updated :2023-06-16T11:58:41.282-05:00 category (scheme='http://www.blogger.com/atom/ns#') (term='Absolute Positioning') : category (scheme='http://www.blogger.com/atom/ns#') (term='CSS') : category (scheme='http://www.blogger.com/atom/ns#') (term='Diagonal Menu') : category (scheme='http://www.blogger.com/atom/ns#') (term='Points of Sail') : category (scheme='http://www.blogger.com/atom/ns#') (term='Sailing') : category (scheme='http://www.blogger.com/atom/ns#') (term='Sprites') : title (type='text') :Diagonal Menu content (type='html') :

A sailboat cannot sail directly into the eye of the wind, but can sail to within
45 degrees of the wind or closer when close-hauled. If you head into the
wind, your sails will start luffing and you will lose power and the
ability to steer. Describing a sailboat's course in relation
to the wind direction, the points of sale on the right
show a starboard tack and assume that the
wind is blowing from the top of your
screen. Boat drawings and info from
me and Chapman Piloting
and Seamanship,
65th edition
by E. Maloney.


link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/4977383989660623193/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2022/07/points-of-sail.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/4977383989660623193') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/4977383989660623193') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2022/07/points-of-sail.html') (title='Diagonal Menu') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com entry : id :tag:blogger.com,1999:blog-4843224028361594470.post-3250608161378613425 published :2022-07-04T09:06:00.023-05:00 updated :2022-08-20T10:14:14.544-05:00 category (scheme='http://www.blogger.com/atom/ns#') (term='Happy 4th') : category (scheme='http://www.blogger.com/atom/ns#') (term='Linux') : category (scheme='http://www.blogger.com/atom/ns#') (term='Symbolic Link') : category (scheme='http://www.blogger.com/atom/ns#') (term='Unix') : title (type='text') :Symbolic Links content (type='html') :

Symbolic links are a useful feature of many disk file systems. They let you make a directory of content or an individual file appear in multiple locations while only storing it once.

In my case I had a directory with many images and I needed those same images in another directory. Rather than copying all the images, I created a symbolic link.

On Unix/Linux/Mac the command to create a symbolic link is: ln -s source destination

Windows NTFS also supports symbolic links using the command: mklink /D source destination

$ pwd
/Applications/MAMP/htdocs/csci/2022/section6/drones5_react_2022/drones5_react_frontend/public/images
$ 
$ 
$ ln -s /Applications/MAMP/htdocs/csci/_all_drones/litapp_2020/lt_5_DB/public/images sym_images

So in this case, a new directory named "sym_images" will be created under "images" and it will be linked to my source directory which is "..lt_5_DB/public/images".

You can also do a "ls -l" command to see the new directory and its link. Later on, if you forget where your directory with the symbolic assets is linked to, you can do the following:

$ ls
sym_images

$ ls -l
lrwxr-xr-x  1 Miné  admin  84 Jul  1 18:47 sym_images -> /Applications/MAMP/htdocs/.../.../.../lt_5_DB/public/images
My sym_images is linked to the lt_5_DB directory in another project.

Image: Daniel Cachandt, CC-BY-SA 3.0

link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/3250608161378613425/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2022/07/symbolic-links.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/3250608161378613425') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/3250608161378613425') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2022/07/symbolic-links.html') (title='Symbolic Links') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com entry : id :tag:blogger.com,1999:blog-4843224028361594470.post-1274697373850162030 published :2022-06-25T10:43:00.029-05:00 updated :2022-06-27T09:21:58.548-05:00 category (scheme='http://www.blogger.com/atom/ns#') (term='Callback Function') : category (scheme='http://www.blogger.com/atom/ns#') (term='Javascript') : category (scheme='http://www.blogger.com/atom/ns#') (term='JS Join Method') : category (scheme='http://www.blogger.com/atom/ns#') (term='JS Map Method') : category (scheme='http://www.blogger.com/atom/ns#') (term='JS Spread Operator') : category (scheme='http://www.blogger.com/atom/ns#') (term='li') : category (scheme='http://www.blogger.com/atom/ns#') (term='ul') : title (type='text') :JS Map, Join Methods & The Spread Operator content (type='html') :
The Javascript Array map method takes each element of an array and maps it to a new value. The mapping is done by the callback function that is passed to map . These values are returned in a new array. The original array is unchanged.
const my_array = [1,2,3,4];
const new_array = my_array.map( function(v) { return v+2 } );
// Resulting new_array will be: [3,4,5,6]
Typically the callback function is written as an arrow function:
const my_array = [1,2,3,4];
const new_array = my_array.map( v => v+2 );
Suppose we have a list of words or phrases and we want to wrap each one in a li element:
const list = ["apples", "pears", "grapes", "strawberries"];
const html_elements = list.map(v => '<li>${v}</li>');
We can then take the html_elements array and convert it to a string using the Array join method which concatenates each element into one string, separating each string by a "join string" that is passed into join as the first parameter:
let html = html_elements.join(' ');
The line above will put a space between each element. We don't need that space, so a better way to do it is to join with an empty string:
let html = html_elements.join('');
This gives us a string with all the li elements, but we'd still need to wrap a ul or ol element around these li's. We could do it like this:
let html = '<ul>'+html_elements.join('')+'</ul>';
But I want to demonstrate the spread operator (...), so I'll show another way:
let html = ['<ul>', ...html_elements, '<ul>'].join(''); 
In this line of code I'm first building an array where the first and last elements are the opening and closing ul tags. The elements in the middle come from the html_elements array. To place these elements in the array we use the spread operator. The spread operator "spreads out" the elements of an array as if you had manually typed them into the array:
let html = ['<ul>', "<li>apples</li>", "<li>pears</li>", "<li>grapes</li>", "<li>strawberries</li>", '<ul>'].join(''); 

Image: Mateusz Feliksik, CC-BY-SA 3.0

link (rel='replies') (type='application/atom+xml') (href='http://www.cssrule.com/feeds/1274697373850162030/comments/default') (title='Post Comments') : link (rel='replies') (type='text/html') (href='http://www.cssrule.com/2022/06/javascript-array-map-method.html#comment-form') (title='0 Comments') : link (rel='edit') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/1274697373850162030') : link (rel='self') (type='application/atom+xml') (href='http://www.blogger.com/feeds/4843224028361594470/posts/default/1274697373850162030') : link (rel='alternate') (type='text/html') (href='http://www.cssrule.com/2022/06/javascript-array-map-method.html') (title='JS Map, Join Methods & The Spread Operator') : author : name :CSSRule uri :http://www.blogger.com/profile/08756544695899161347 email :noreply@blogger.com