I’ve started using Beaver Builder with a few clients after having played with it a bit and hearing lots of great reviews. I’ve looked into multiple WordPress Page Builders, and have had experience with quite a few of them through my work offering WordPress maintenance service.
I’ve found that Beaver Builder is able to handle a lot of the customizations that my clients may want to make, but there are still a few things that I have to setup externally to get a feature that they want. As an example, a client wanted to use the callout module to make an entire box clickable, not just a button after text and images.
Doing the above was fairly straightforward for this use-case: I set the entire callout link to be relatively positioned in CSS, so that I could absolutely position the anchor tag within the link to be the full height and width of that box. Finally, I added a hover and focus state to the button so that when hovering with the mouse or focusing with the keyboard there would be a visual indication that it was clickable, besides the cursor icon that was already set.
.callout-link {
position: relative;
}
.callout-link a {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
.fl-callout-button a:hover,
.fl-callout-button a:focus {
box-shadow: 1px 1px 3px 0 #315E7D;
}
Code language: CSS (css)
So what’s the issue?
That looked like a simple solution to the problem that we had, but like many bits of code, I inadvertently created a new issue.
Beaver Builder is a front-end content editor, which means that it uses the same HTML and CSS structure to display the content while editing. While this is normally a good thing, it means that you need to pay attention to custom code that you’ve added to modify Beaver Builder.
Since I changed the layout of links in the callout module, I changed the layout of links for the editor of that module. Additionally, I’d styled unordered list bullets with pseudo-elements, which also caused a display issue. This is what the editor looked like when I tried to modify those links:

After I determined that I was the cause of the issue, I set about to fix it. Thankfully, Beaver Builder adds several body classes while the page editor is open, including the class fl-builder-edit
which I used to fix this particular issue. I hid the li::before
pseudo-elements, and restored the link anchor to relative positioning.
/* Beaver Builder Editor Fixes */
.fl-builder-edit .entry-content ul li::before,
.fl-builder-edit .fl-builder-content ul li::before {
display: none;
}
.fl-builder-edit .callout-link a {
position: relative;
}
Code language: CSS (css)
With that code in place, the editor layout looked as it should before I mangled it.

Check for unintended consequences of your code.
This broken CSS wasn’t a major problem, and was thankfully easy to fix. But it did bring up a good reminder: when you make one change to your code, you may change something else that you didn’t mean to. It’s always good to review every time that you make a change. Having some version control in place that you use regularly doesn’t hurt either!
Glad I’m not the only one who mangles things when changing code… !